用byte[] 構造的Class 在 instanceof操作....
public class Untitled1 { private final DirectLoader classLoader = new DirectLoader(); private static class DirectLoader extends ClassLoader { private DirectLoader() { super(ClassWork.class.getClassLoader()); } private Class load(String name , byte[] data) { return super.defineClass(name , data , 0 , data.length); } } public Class loadClass(String className) { try { byte[] bytes = getBytes("classes/demo/WFProcess.class"); System.out.println("size=" + bytes.length); return classLoader.load(className , bytes); } catch(Exception ex) { throw new RuntimeException(ex); } } private byte[] getBytes(String filename) throws IOException { File file = new File(filename); long len = file.length(); byte raw[] = new byte[(int)len]; FileInputStream fin = new FileInputStream(file); int r = fin.read(raw); if(r != len) { throw new IOException("Can't read all, " + r + " != " + len); } fin.close(); return raw; } public static void main(String[] args) { try { Untitled1 u = new Untitled1(); Class clas = u.loadClass("demo.WFProcess"); Object o = clas.newInstance(); System.out.println("class=" + o.getClass()); if(o instanceof WFProcess) { System.out.println("WFProcess"); } if(o instanceof Cloneable) { System.out.println("Cloneable"); } System.out.println("OK"); } catch(Exception ex) { ex.printStackTrace(); } } } public final class WFProcess implements Cloneable { private int id = -1; private String name; private String description; private String attributes; private boolean valid; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getAttributes() { return attributes; } public void setAttributes(String attributes) { this.attributes = attributes; } public boolean getValid() { return valid; } public void setValid(boolean valid) { this.valid = valid; } public void test() { this.setId(2); this.setAttributes("cc"); Object o=new Object(); } } <p class="indent"> |
大家的執行結果是什麼?為什麼只列印出 Cloneable
相關文章
- Java 中 instanceof 關鍵字 object instanceof ClassJavaObject
- Class.isAssignableFrom與instanceof的區別
- 介面能不能有構造方法?怎樣在windows下執行class應用程式?構造方法Windows
- 設計模式是在運用構造定律設計模式
- JS物件操作(in、instanceof、delete)運算子JS物件delete
- 用MFC構造DirectX應用框架 (轉)框架
- 用函式索引構造特殊的約束函式索引
- MRPII在製造業的應用(轉)
- 在jboss啟動時載入class方法(定時操作) (轉)
- instanceof
- 人工智慧在智慧製造中的應用人工智慧
- Random 函式在批量造資料中的運用random函式
- 第5章:可複用性的軟體構建方法 5.2面向複用的構造
- 十七、物件的構造物件
- JavaScript instanceofJavaScript
- instanceof 原理
- Java--構造器和構造方法Java構造方法
- OSP在製造行業的應用與推廣行業
- instanceof 是如何工作的
- 【智慧製造】李傑:人工智慧與工業4.0在智慧製造的應用人工智慧
- C++ 建構函式實戰指南:預設構造、帶引數構造、複製構造與移動構造C++函式
- 前端構造桌面級應用(QQ音樂)前端
- 構造方法構造方法
- 構造器
- UG在鈑金設計與製造中的應用
- ERP在汽車製造行業中的應用(轉)行業
- 類檔案結構_class類檔案的的結構
- 商務智慧在物流操作上的應用
- Class類檔案結構
- 在離散混合製造環境中應用製造運營模型模型
- javascript instanceof的原型介紹JavaScript原型
- PHP的instanceof關鍵字PHP
- instanceof和typeof的區別
- 深入解析Class類檔案的結構
- 【java反射】Class型別的相關操作演練Java反射型別
- effective java 第2條:遇到多個構造器引數時要考慮用構造器Java
- 構造點,線結構
- 在製造業的工業2.0中應用MOM系統