我正在使用asm库来执行一些Java字节码修改 - 专门用于修改我的类以实现新的接口和相关方法.我目前的方法是通过javaagent使用核心asm API.我想保留这种动态方法,而不是静态修改.class文件.
在更高的层次上,我的问题是,如果我选择修改从B扩展的A类,我还需要修改B.(鉴于我对如何在JVM中加载类的理解,我相信B类将永远是在A级之前交给变压器.(如果我错了,请纠正我.)鉴于这个假设,我认为我需要返回并重新转换 B.我的方法在这段代码中被捕获:
public byte[] transform(ClassLoader l, String name, Class<?> clazz, ProtectionDomain d, byte[] b) {
throws IllegalClassFormatException {
// **1**
System.out.println("--->>> " + name);
if (interestingClass(name)) {
try {
ClassReader cr = new ClassReader(b);
ClassWriter cw = new ClassWriter(cr, ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
PyClassVisitorAdapter pv = new PyClassVisitorAdapter(cw, name);
cr.accept(pv, 0);
// **2** Retrieve the superclass and try to transform that
if (! "Ljava/lang/Object;".equals(pv.getSuperName())) {
String cName = classJvmToCanonical(pv.getSuperName());
Class[] classes = inst.getAllLoadedClasses();
for (Class c …Run Code Online (Sandbox Code Playgroud) 我正在努力学习Applescript,最终,以编程方式将终端中的选项卡标题设置为我目前正在使用的任何上下文.应该是一个简单的任务,我认为它几乎是正确的我认为.这是我到目前为止的实验代码......
tell application "Terminal"
activate
set frontIndex to index of the first window whose frontmost is true
tell window frontIndex
set title displays custom title of selected tab to true
set custom title of selected tab to "Bazzy"
end tell
end tell
Run Code Online (Sandbox Code Playgroud)
问题是当我设置标签的标题时,所有其他标签的标题也会被设置.但是,如果我右键单击并检查选项卡,然后在该选项卡上手动设置标题,则在运行我的代码时,其标题不会受到影响,并且我手动键入的标题仍然存在.就好像title displays custom title没有阅读该属性,或者这个属性可能不会像我想的那样做.
如何将一个选项卡的标题设置为自定义值?