为什么输出如下?
自行车创建
安全运行..
装备改变了
因为我们不是Bike()在任何地方调用方法.
abstract class Bike {
Bike() {
System.out.println("bike is created");
}
abstract void run();
void changeGear() {
System.out.println("gear changed");
}
}
//Creating a Child class which inherits Abstract class
class Honda extends Bike {
void run() {
System.out.println("running safely..");
}
}
//Creating a Test class which calls abstract and non-abstract methods
class TestAbstraction2 {
public static void main(String args[]) {
Bike obj = new Honda();
obj.run();
obj.changeGear();
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用最新的 Eclipse 和 Sonar 插件
在回答日志记录时,有以下行:
log.debug("Request body: {}", new String(body, "UTF-8"));
Run Code Online (Sandbox Code Playgroud)
只有在调试级别时才应该创建字符串:
/**
* Log a message at the DEBUG level according to the specified format
* and argument.
* <p/>
* <p>This form avoids superfluous object creation when the logger
* is disabled for the DEBUG level. </p>
*
* @param format the format string
* @param arg the argument
*/
public void debug(String format, Object arg);
Run Code Online (Sandbox Code Playgroud)
但声纳将其标记为squid:S2629:
“前提条件”和日志参数不应该需要求值 (squid:S2629)
并给出串联的例子
logger.log(Level.DEBUG, "出现问题:" + …
我有一个java程序,它更新oracle数据库中的表。
我已经尝试使用单个 JDBC 连接,但速度非常慢,需要几个小时才能完成。
我正在尝试使用 HikariCP 来创建连接池,并让多个线程从池中获取单独的连接。
假设池中有 6 个线程和 5 个数据库连接,其中 5 个线程调用该HikariDataSource.getConnection()方法。他们每个人都会得到一个单独的数据库连接对象吗?
如果是,那么当线程调用 getConnection 方法或使用空连接执行剩余代码时,该线程是否会处于阻塞/等待状态?
如果不是,我如何让它们分开连接?
我运行了以下命令,但我得到了同样的错误:
$ jdeps --generate-module-info . --multi-release 9 libs/log4j-core-2.11.1.jar
Error: log4j-core-2.11.1.jar is a multi-release jar file but --multi-release option is not set
$ jdeps --generate-module-info . --multi-release 10 libs/log4j-core-2.11.1.jar
Error: log4j-core-2.11.1.jar is a multi-release jar file but --multi-release option is not set
$ jdeps --generate-module-info . --multi-release 11 libs/log4j-core-2.11.1.jar
Error: log4j-core-2.11.1.jar is a multi-release jar file but --multi-release option is not set
$ jdeps --generate-module-info . libs/log4j-core-2.11.1.jar
Error: log4j-core-2.11.1.jar is a multi-release jar file but --multi-release option is not set
Run Code Online (Sandbox Code Playgroud)
上述命令有什么问题? …
我可能做错了什么。所以,我有春天@Async
假设我有这段代码
@Async("poolbeanname")
Function () {
// some code
}
Run Code Online (Sandbox Code Playgroud)
我还有一个,假设我有这段代码
@Async("poolbeanname")
Function () {
CompletableFuture.runAsync{ new Runnable ()...}
}
Run Code Online (Sandbox Code Playgroud)
现在,通过第二个代码,我可以看到,生成了一些线程,但第一种方法似乎没有生成多个线程?
我是 apache-commons-csv 1.6 的新手
我有一个基本要求,即打印 csv 文件,其中每条记录都换行。我正在尝试使用 CSVPrinter 的 println 方法。由于某些奇怪的原因,输出文件没有任何换行符。所有内容都打印在一行中。
我尝试在 Notepad++ 中打开输出并显示不可打印的字符。记录之间没有字符。任何帮助将不胜感激。谢谢。
CSVPrinter csvPrinter = null;
if(delimiter != null && delimiter.length() > 0) {
csvPrinter = new CSVPrinter(new FileWriter(outputFile), CSVFormat.newFormat(delimiter.charAt(0)).withHeader(header));
}else {
csvPrinter = new CSVPrinter(new FileWriter(outputFile), CSVFormat.DEFAULT.withHeader(header));
}
for(Map<String,String> record : inputList) {
List<String> valueList = new ArrayList<String>();
for(String key : record.keySet()) {
valueList.add(record.get(key));
}
System.out.println(valueList);
csvPrinter.printRecord(valueList);
csvPrinter.println();
}
csvPrinter.close();
Run Code Online (Sandbox Code Playgroud)
预期结果:
id|类型|值|键
4|excel|0|excel.sheet.no
5|excel|日/月/年|excel.日期.格式
6|excel|0|excel.baserate.rownum
实际结果: id|type|value|key4|excel|0|excel.sheet.no5|excel|dd/MM/yyyy|excel.date.format6|excel|0|excel.baserate.rownum
这是一种反模式,但我很好奇实际会发生什么。
如果显式定义一个无参数构造函数和一个带自动装配参数的构造函数,spring框架将如何初始化它?
@Service
class Clazz {
private MyBean myBean;
public Clazz(){}
@Autowired
public Clazz(MyBean myBean){
this.myBean = myBean;
}
}
Run Code Online (Sandbox Code Playgroud) java spring dependency-injection javabeans multiple-constructors
我一直在密切关注 MVC 实现和事件总线。
为什么不使用 Event-bus 而不是 Observer Pattern 来实现 MVC 应用程序?
例如,可以说我有两个类Model和View,在这将是典型的观察者模式:
public class Model implements Subject { ... }
public class View implements Observer { ... }
Run Code Online (Sandbox Code Playgroud)
相反,使用绿色机器人事件总线或任何其他事件总线的方法有什么好处/缺点?
它会是这样的:
public class Model {
private int field = 0;
void someFunctionNowTriggerStateChange() {
this.field = field + 1;
...EventBus.getDefault().post(this); //pass itself as the event
}
}
public class View {
@Subscribe onModelUpdated(Model model) {
updateTextLabel(model);
//other model updates
}
}
Run Code Online (Sandbox Code Playgroud)
与典型的观察者相比,使用 EventBus 实现 MVC 有哪些问题(如果有)?
我用 avro 库编写了一个示例。它User从 schema生成 java 类源代码record User。
我想编码User为byte[],然后解码byte[]为User。
解码时,我收到错误消息:
java.lang.ClassCastException: org.apache.avro.util.Utf8 cannot be cast to java.lang.String
Run Code Online (Sandbox Code Playgroud)
如何转换org.apache.avro.util.Utf8为java String?
我是 gradle 新手,我在 build.gradle.kts 中找到了依赖项,因为子句/语句
Run Code Online (Sandbox Code Playgroud)dependencies { implementation("commons-io:commons-io") { because("IOUtils") } implementation("org.apache.commons:commons-text") { because("StringEscapeUtils") }
我没有在任何Gradle 依赖项文档中找到because子句
它是否只是一个类似于添加 java 文档的自定义子句,并且可以重命名为任何字符串:myreason("""my reason is other""")
或者becasueGradle 使用了语句?
java ×10
spring ×2
architecture ×1
asynchronous ×1
avro ×1
concurrency ×1
constructor ×1
eclipse ×1
gradle ×1
hikaricp ×1
java-11 ×1
java-9 ×1
javabeans ×1
jdbc ×1
jdeps ×1
log4j ×1
newline ×1
oop ×1
sonarqube ×1
spring-boot ×1