我试图生成一个代码,强制线程属于我的类CustomThread。
Thread myThread=new Thread(myRunnable);
if(myThread instanceOf CustomThread)
{
System.err.println("ok");
}
我试图取代ClassLoader我的自定义ClassLoader重载findClass(字符串名称)和loadClass(字符串名称)捕捉名称java.lang.thread和加载我的CustomThread类,而不是,我设置这个CustomClassLoader作为类Loader创建我的线程中的所有对象。
有人知道我想做的事情是否可能,以及如何做吗?
public Class<?> loadClass( String name ) throws ClassNotFoundException
{
System.err.println( "loadClass name: "+name );
if ( name.equals( Thread.class.getName() ) && flagThreadDefine == 0 )
{
// Class<?> redifineClass = redefineClass( name );
flagThreadDefine = 1;
return redefineClass(CustomThread.class.getName() );
}
flagThreadDefine = 0;
return super.loadClass( name );
}
private Class<?> redefineClass( String name )
{
URL findResource = findResource( name.replace( '.', '/' ).concat( ".class" ) );
if ( findResource != null )
{
try
{
URLConnection openConnection = findResource.openConnection();
InputStream input = openConnection.getInputStream();
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int data = input.read();
while ( data != -1 )
{
buffer.write( data );
data = input.read();
}
input.close();
byte[] classData = buffer.toByteArray();
return defineClass( name, classData, 0, classData.length );
}
catch ( IOException ex )
{
Logger.getLogger( CustomClassLoader.class.getName() ).log( Level.SEVERE,null, ex );
}
}
return null;
}
ps:对不起,我的英语很差。
我可以想象,线程类是在任何自定义代码有机会执行之前加载的(因为您的代码很可能是在线程实例上执行的)。
为了替换类线程,您很可能需要使用自定义实现创建一个jar,并将其放在bootclasspath上。然而,您需要替换当前的实现,而不是扩展它,这会让事情变得更加棘手。
我试图在java中使用Hibernate和TypedQuery。 我试图调用的方法有一个签名 我想像bellow一样调用它,但是用一个真实的实例替换null。 上面的代码经过编译,但显然带有空指针异常。 如果我对擦除的理解是正确的,那么只要我得到类对象的一个实例,这就行了,因为所有泛型类型信息在运行时都会丢失。 是否有任何方法,我可以得到一个类的实例,我可以分配给变量cls,使这个代码将工作?
前端有没有办法实现页面截图?不是html-to-canvas那种实现,而是类似于windows上各种截图工具那样,直接截取屏幕上图像 目前搜到的全是html-to-canvas的方案
我目前正在努力实现一种保护隐私的数据挖掘算法。对于不同各方之间的通信部分,我使用的是Netty 4.0。双方之间的通信流如下所示: 其中是启动和控制整个计算的主方。安全多方乘法的逻辑位于 Netty 中。还有另一种用于安全添加的协议。 目前,我使用类似的解决方案,如Netty核心团队的Norman Maurer所示,以了解子协议计算是否已完成。但这感觉有点像是在对抗框架。 是否有办法从< code
问题内容: 我一直在寻找一个问题:从其字符串名称实例化一个类,该字符串名称描述了如何在具有名称时实例化一个类。有没有办法用Java做到这一点?我将拥有包名称和类名称,并且我需要能够创建具有该特定名称的对象。 问题答案: 两种方式: 方法1-仅适用于具有无参数构造函数的类 如果你的类具有无参数构造函数,则可以使用并使用该方法创建一个实例(尽管请注意,此方法通常被认为是有害的,因为它可以击败Java的
不久前,我有了一个关于“参数化”用户定义文本的想法,并且想知道在当前的C标准中是否有任何方法可以做到这一点。 基本上,这个想法是有一个用户定义的文本,其行为可以根据一些参数进行调整。作为一个简单的例子,我选择了一个“定点”字面值,它将浮点数转换为整数;该参数是小数位数的精度。 这只是一个练习,因为我不确定这在实际应用中是否有用。 我的第一个想法是这样的: 但是,它不会编译,因为类范围中不允许使用名
我试图构建一个资源包,从数据库而不是属性文件获取其消息。我做了一些扩展ResourceBundle的测试,ResourceBundle。控件和ListResourceBundle,我想我走的是正确的道路。 当我需要查询实际数据库以从我的ResourceBundle实现中获取消息时,我就到达了一个点。我想利用EJB层上的所有JPA架构体系来运行查询并实例化存储密钥、消息和区域设置的对象。因此,如果我