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



  • 相关阅读:
    uboot中setenv和saveenv分析
    DMA和通道的区别
    openwrt 切换overlay文件系统为根文件系统
    华为SDN:解决传统网络3大问题
    企业需要申请多大宽带的专线?如何节省专线费用?
    stp
    inotify文件监控
    Qt中C++与QML交互
    内核空间可以直接访问应用层空间地址
    linux 提权漏洞总结
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10766449.html
  • Copyright © 2020-2023  润新知