zoukankan      html  css  js  c++  java
  • 将 java 改写成 beanshell 的经验之谈

    下面经验仅仅针对 bsh for android 而谈, PC 上 beanshell 无需这样改。

    public class TimeTest  改写为闭包: TimeTest() 

    闭包末尾添加语句 return this;

    public static void main(String[] args) 改写为: run()

    最后添加
    timetest = TimeTest(); // call 闭包 == new TimeTest()

    timetest.run();

    比如: TimeTest.bsh

    import java.io.*;
    import java.net.*;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.*;
    
    TimeTest()
    {
       private static DateFormat fmt = new SimpleDateFormat("yy-MM-dd HH:mm:ss") ;
     
       /** UTC -> local Time 
        */
       public static String getLocalTimeFromUTC(String UTCTime){
          java.util.Date UTCDate = null ;
          String localTimeStr = null ;
          try {
             UTCDate = fmt.parse(UTCTime);
             fmt.setTimeZone(TimeZone.getTimeZone("GMT+8")) ;
             localTimeStr = fmt.format(UTCDate) ;
          } catch (ParseException e) {
             print(e);
          }
          return localTimeStr ;
       }
    
       run()
       {  
          Calendar cal = new GregorianCalendar();
          zone = cal.getTimeZone().getID();
          print(zone);
          Date date1 = new Date();
          time1 = fmt.format(date1);
          print("my 20"+time1);
          try
          {  
             Socket s = new Socket("time.nist.gov", 13);
             try
             {
                InputStream inStream = s.getInputStream();
                Scanner in = new Scanner(inStream);
                
                while (in.hasNextLine())
                {  
                   String line = in.nextLine();
                   // print(line);
                   if (line.length() >24){                  
                      String UTC = line.substring(6,24);
                      print("UTC  "+UTC);
                      print("CN 20"+getLocalTimeFromUTC(UTC));
                   }
                }
             }
             finally
             {
                s.close();
             }
          }
          catch (IOException e)
          {  
             print(e);
          }
       }
    
       return this;
    }
    
    timetest = TimeTest();
    timetest.run();
    



查看全文
  • 相关阅读:
    关于MOTO E2
    Visual Studio 2008 SDK 1.1 Beta 发布
    开始了新的工作
    C# 2.0 的"语法多义性"
    最近画的框架草图
    SQL数据库向ORACLE迁移注意事项
    C#中很多新的特性,提供了更好的“即兴编程”的能力。
    看了点lua相关的东西,有点想法不知能否实现?先记下来慢慢思考。
    读《企业应用架框模式》
    porting cinvoke1.0 to E2 (armlinux)
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10766449.html
  • Copyright © 2011-2022 走看看