java反射机制访问private方法

我今天来了以为会给我工作呢。可是,来了之后也没有给我分配什么任务。看来是经理还没有写完文档什么的。
然后我就开始做我的最近联系人。刚开始想让他先加载10条,当用户下拉的时候在进行加载。但是这样应该也是很慢的
因为将数据加载到listview中是需要时间的。那么我还不如让软件刚开始打开的时候就开始进行加载到数据库。那么
用户在点击最近联系人的时候就可以直接加载到页面了。这样应该是比较方便的。

看了下sqlite怎么查询前十条记录。使用limit 10
果我要去11-20的Account表的数据 Select * From Account Limit 9 Offset 10; 以上语句表示从Account表
获取数据,跳过10行,取9行嗯,我觉得这个特性足够让很多的web中型网站使用这个了。也可以这样写
select * from account limit10,9和上面的的效果一样。
通用公试: sql = "select * from FlyCrocodile where
 "+条件+" order by "+排序+" limit "+要显示多少条记录+" offset "+跳过多少条记录;
 如: select * from flycrocodile limit 15 offset 20     意思是说:  
从flycrocodile表跳过20条记录选出15条记录

测试了下从查询通讯录到加载到listview中,所用的时间。
long startTime = System.nanoTime();
long consumingTime = System.nanoTime();
System.out.println((consumingTime-startTime)/1000000000 + "   秒");

今天中午从十一点开始写将一个字符串写入一个文件夹中。
搞了半天结果忘了写权限。。。我这个脑子啊。。。直接无语啊。以后写什么程序,先吧权限考进去。在写。
写了一个java,android调用一个类的private方法。
发现居然可以利用java的反射机制去调用其他类的私有方法
Class ioClass = Io.class;
 //获得私有的method对象,第一个参数为方法名称(大小写严格区分),第二个参数为该方法参数的类型,如果没有参数可设置为null
 try {
  Method method = ioClass.getDeclaredMethod("save",
     new Class[] {Context.class,String.class });
  //这句是调用私有方法的关键,如果参数为true则虚拟机取消java语言的访问检查
  method.setAccessible(true);
  //执行私有方法,第一个参数为要执行的对象(已实例化的),第二个参数代表该方法的参数值,如果没有参数可设置为null
  method.invoke(ioClass.newInstance(),
   new Object[] {MainActivity.this,"zhang"});

然后这是将一个string写到一个文件
private void save(Context context , String content) {
  String path = getSDPath();
  String path_package = context.getApplicationInfo().packageName;
  String paths = "/data/data/"+path_package+"/PhoneBill";
  String allPath = path + paths;
  FileWriter ostream = null; 
  System.out.println(allPath);
  
        File file = new File(allPath);
      
        try{ 
         if (!file.exists()) {
          
          file.mkdirs();
          System.out.println("正在创建文件夹");
          
          System.out.println(file.exists());
      }
         File iflFile = new File(allPath+"a.txt");
         if (!iflFile.exists()) {
          
    iflFile.createNewFile();
    System.out.println("正在创建文件");
   }
            //AssetManager am = context.getAssets(); 
            ostream = new FileWriter(allPath+"a.txt"); 
            ostream.write(content);
            System.out.println("copy 成功。。。");
            ostream.close(); 
           
           
            FileReader fileReader = new FileReader(allPath+"a.txt");
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            System.out.println(bufferedReader.readLine());
        } 
        catch(Exception e){ 
            e.printStackTrace(); 
            try{ 
             System.out.println("copy出错了。。。。");
                if(ostream!=null) 
                    ostream.close(); 
            } 
            catch(Exception ee){ 
                ee.printStackTrace(); 
            } 
        } 
        System.out.println("开始return........");
 }
 public String getSDPath(){
       File sdDir = null;
       //判断sd卡是否存在
       boolean sdCardExist = Environment.getExternalStorageState()  
                             .equals(android.os.Environment.MEDIA_MOUNTED);  
       if(sdCardExist){
               //获取根目录
           sdDir = Environment.getExternalStorageDirectory();
       }  
       return sdDir.toString();
  }
刚才和那个群里的人聊天。虽然一眼就能看出他不会写程序,但是说的还是很有道理的。要按照文档来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值