草庐IT

code-generation

全部标签

java - 有Java语言的Java解析器吗?

我正在寻找一个允许我解析Java源文件并为我提供代码的AST表示的Java库。实际上我只对类和方法定义及其注释感兴趣。我不需要方法代码的AST。我将此信息用于代码生成。这就是为什么我不能先编译源文件以从生成的类文件中获取信息的原因。在我生成一些额外的类之前,代码不会编译而没有错误。 最佳答案 Java6支持将其作为编译器的native部分,并为其提供标准API(javax.lang.model)。您可以阅读它here.它专为您的用例而设计(即从注释和源代码生成代码)。 关于java-有J

java - 有什么方法可以从 Lambda 闭包中停止 Stream.generate 吗?

我刚开始玩Java8和Lambda表达式,我很好奇我是否可以通过返回特定值从Lambda表达式内部停止流生成(如空)。Stream.generate()是否可行?privateintcounter;privatevoidgenerate(){System.out.println(Stream.generate(()->{if(counter不幸的是,这段代码不会终止,所以通过简单地返回null不会跳出流。 最佳答案 Java9及更高版本包括thismethod:StreamtakeWhile(Predicatepredicate);

【VS Code插件开发】自定义指令实现 git 命令 (九)

🐱个人主页:不叫猫先生,公众号:前端舵手🙋‍♂️作者简介:前端领域优质作者、阿里云专家博主,共同学习共同进步,一起加油呀!✨优质专栏:VSCode插件开发极速入门📢资料领取:前端进阶资料可以找我免费领取我们通常会通过小乌龟、SourceTree、终端等实现git的相关操作,VSCode开发工具也提供了git相关的操作,那么在VSCode中如何通过自定义命令实现git的相关操作?本文主要介绍了gitclone、gitadd、gitcommit、gitpush等命令的实现。创建终端异步函数声明:asyncfunctionexecuteGitCommand(command,options){用于执行

java - 双代理接口(interface) : Could not generate CGLIB subclass of class 时 Spring AspectJ 失败

我正在使用Spring的代理一些JPArepository接口(interface)。但是,代理失败并显示以下Cannotsubclassfinalclassclass$Proxy80:CouldnotgenerateCGLIBsubclassofclass[class$Proxy80]:Commoncausesofthisproblemincludeusingafinalclassoranon-visibleclass;nestedexceptionisjava.lang.IllegalArgumentException:Cannotsubclassfinalclassclass$P

java - GWT TypeOracle.getTypes 不返回所有类型

我有一个自定义生成器,它只为我项目中的某些类生成代码。以下代码位于generate方法的开头,并将我需要处理的所有类放入clazzes列表TypeOracleoracle=context.getTypeOracle();JClassTypemarkerInterfaceType=oracle.findType(MY_PARENT_CLASS.class.getName());Listclazzes=newArrayList();for(JClassTypeclassType:oracle.getTypes()){if(!classType.equals(markerInterfaceT

Windows系统安装OpenSSH结合VS Code远程ssh连接Ubuntu【内网穿透】

🌈个人主页:Aileen_0v0🔥热门专栏:华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL|​💫个人格言:“没有罗马,那就自己创造罗马~”#mermaid-svg-mEkKUraSFHLKkzIj{font-family:"trebuchetms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-mEkKUraSFHLKkzIj.error-icon{fill:#552222;}#mermaid-svg-mEkKUraSFHLKkzIj.error-text{fill:#552222;stroke:#55

java - 自动生成 Java Externalizable readExternal()/writeExternal() block

我正在处理一个Java的native序列化速度很慢的项目,因此我们希望转向在类上实现Externalize接口(interface)以获得卓越的性能。但是,这些类有很多数据成员,我们已经意识到在编写这两个方法时很容易出错。我们只是在这些函数中读/写类的所有成员,没什么特别的。是否有某种方法可以生成readExternal()writeExternal()block以在离线过程中或在编译时自动外部化?我看过http://projectlombok.org/,这样的东西本来就是理想的。同样,我们希望保持这些类不可变,但不可变类无法实现可外部化接口(interface)-我们希望使用有效ja

java - SunToolkit.awtLock : does code that takes such a lock needs to be called on the EDT

我正在调查死锁并在线程转储中看到以下内容atsun.awt.SunToolkit.awtLock(SunToolkit.java:229)atsun.awt.X11.XRobotPeer.setup(NativeMethod)-locked(ajava.lang.Classforsun.awt.X11.XRobotPeer)atsun.awt.X11.XRobotPeer.(XRobotPeer.java:24)atsun.awt.X11.XToolkit.createRobot(XToolkit.java:683)atjava.awt.Robot.init(Robot.java:11

java - 意外的 GC 行为 : some data always going into the tenure generation

运行一个非常简单的代码来尝试查看垃圾收集器的功能。Stringa=null;while(true){a=newString("no...");}我正在使用ParallelGC。我打印了GC结果,这是第一个(次要)GC。[GC[PSYoungGen:16448K->1616K(19136K)]16448K->1624K(62848K),0.0022134secs][Times:user=0.00sys=0.00,real=0.00secs]youngGen下降了14880K然而fullHeap只下降了14872K这是否意味着8k已经进入了tenure一代?我的理解是GC可能被称为类'a'

java - 如何生成源代码来创建我正在调试的对象?

我的典型场景:我处理的遗留代码有一个只有生产中的客户有的错误我附加了一个调试器,并找出如何在他们的输入的情况下在他们的系统上重现该问题。但是,我不知道为什么会发生错误。现在我想在我的本地系统上编写一个自动化测试来尝试重现然后修复错误最后一步真的很难。输入可能非常复杂并且包含大量数据。手动创建输入(例如:Pp=newP();p.setX("x");p.setY("x");想象这样做1000次以创建对象)非常繁琐且容易出错。事实上,您可能会注意到我刚才给出的示例中有一个拼写错误。是否有一种自动方法可以从我的调试器中的断点获取一个字段并生成将创建该对象的源代码,并以相同的方式填充?我唯一想到