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();
    



查看全文
  • 相关阅读:
    设计模式之开篇(C#语法) 爱拼才会赢
    C#语法糖之第一篇:自动属性&隐式类型 爱拼才会赢
    C#语法糖之第四篇: 扩展方法 爱拼才会赢
    C#中this在扩展方法的应用
    笔记20120215_转义字符_运算符
    Linux基本操作
    SQL创表
    软件测试的概念
    java 线程池
    Redis广播
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10766449.html
  • Copyright © 2011-2022 走看看