我有以下logback.xml文件:
<configuration debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
现在,在发生特定事件时,我想以编程方式将根记录器的级别从调试更改为错误.我不能使用变量替换,我必须在代码中执行此操作.
怎么做到呢 ?谢谢.
我有两个包,Shapes
并且Fruits
:
com.myproject.Shapes.
Circle
Square
Triangle
com.myproject.Fruits.
Apple
Orange
Run Code Online (Sandbox Code Playgroud)
我正在编写JavaDoc Apple
并且需要提供一个{@link}
to Square
.
我已经尝试了以下所有方法,但没有一个工作:
{@link Square}
{@link com.myproject.Square}
Run Code Online (Sandbox Code Playgroud)
我已经能够找到链接到以下内容的文档:(a)同一个包中的类,或(b)外部URL,但不包含另一个包中的类.
任何想法正确的语法应该是什么?谢谢!
当在数组上使用时,Java中的clone()方法究竟返回了什么?它是否返回一个包含从原始数据复制的数据的新数组?
例如:
int[] a = {1,2,3};
int[] b = a.clone();
Run Code Online (Sandbox Code Playgroud) 我正在尝试编组实现通用接口的对象列表.涉及3个类和1个接口:
社区类(有一个方法:List <Person> getPeople();)
Person接口(有一个方法:String getName();)
女子班(实施人)
男生班(实施人)
见下面的代码.
我想要一个看起来像这样的XML:
<community>
<people>
<girl>
<name>Jane</name>
</girl>
<boy>
<name>John</name>
</boy>
<girl>
<name>Jane</name>
</girl>
<boy>
<name>John</name>
</boy>
</people>
</community>
Run Code Online (Sandbox Code Playgroud)
或者可能:
<community>
<people>
<person>
<girl>
<name>Jane</name>
</girl>
</person>
<person>
<boy>
<name>John</name>
</boy>
</person>
</people>
</community>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我得到的是:
<community>
<people>
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="girl">
<name>Jane</name>
</person>
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="boy">
<name>John</name>
</person>
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="girl">
<name>Jane</name>
</person>
<person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="boy">
<name>John</name>
</person>
</people>
</community>
Run Code Online (Sandbox Code Playgroud)
我意识到我可以将元素更改为其他内容,但我希望元素名称是Girl或Boy类中的名称.
可以这样做吗?谢谢.
@XmlRootElement(name = "community")
public …
Run Code Online (Sandbox Code Playgroud) 我最近与同事讨论了为什么Java中的List接口没有head()
和tail()
方法.
为了实现这样的功能,必须编写一个看起来像这样的包装器:
public E head() {
if (underlyingList == null || underlyingList.isEmpty())
return null;
return underlyingList.get(0);
}
public E tail() {
if (underlyingList == null || underlyingList.isEmpty())
return null;
return underlyingList.get(underlyingList.size()-1);
}
Run Code Online (Sandbox Code Playgroud)
我不知道所有的List实现,但我认为至少在LinkedList和ArrayList中,获取最后一个元素(常量时间)应该是非常简单的.
所以问题是:
是否有一个特定的原因为什么为任何List实现提供tail方法不是一个好主意?
我正在从文本文件中读取连续的字符行.文件中字符的编码可能不是单字节.
在某些时候,我想获得下一行开始的文件位置,这样我可以稍后重新打开文件并快速返回到该位置.
是否有一种简单的方法可以做到这两点,最好是使用标准的Java库?
如果没有,什么是合理的解决方法?
理想的解决方案是处理多种字符编码.这包括UTF-8,其中不同的字符可以用不同的字节数表示.理想的解决方案主要依赖于受信任且支持良好的库.最理想的是标准Java库.第二好的是Apache或Google库.解决方案必须是可扩展的.将整个文件读入内存不是一种解决方案.返回位置不应要求在线性时间内读取所有先前字符.
对于第一个要求,BufferedReader.readLine()
是有吸引力的.但缓冲显然会干扰获得有意义的文件位置.
不太明显,InputStreamReader
也可以提前读取,干扰获取文件位置.从InputStreamReader文档:
为了能够有效地将字节转换为字符,可以从基础流中提取比满足当前读取操作所需的更多字节.
该方法RandomAccessFile.readLine()
每个字符读取一个字节.
通过取字符的低八位的字节值并将字符的高八位设置为零,将每个字节转换为字符.因此,此方法不支持完整的Unicode字符集.
我得到了一个用C++编写的应用程序,我可以通过在C++中编写插件来扩展应用程序功能.
我基本上想要做的是将Java嵌入到这个应用程序中.这已经用Python完成了(不是由我完成的).
我读了一些关于JNI的内容,但总是有一个使用Java类的完整程序的演讲.
我想要做的是,使用Java中的C++类来与应用程序进行交互.
在这种情况下,它是一个3D应用程序,称为Cinema 4D.
有没有办法在应用程序运行时(使用某种脚本语言)使用JNI或类似的东西编译和评估Java代码?
嵌入完成后的虚构代码示例:
import c4d.documents.*;
class Main {
public static void main() {
BaseDocument doc = GetActiveDocument();
BaseObject op = doc.GetActiveObject();
if (op != null) {
op.Remove();
}
}
}
Run Code Online (Sandbox Code Playgroud)
此代码应与Cinema 4D交互以删除所选对象.
在我的Eclipse Preferences -> Java -> Editor -> Content Assist -> Advanced
设置中,我看到以下内容:
我尝试使用谷歌搜索(单独)"Java非类型提案"和"Java提案(以任务为中心)",但没有找到任何描述它们.
匹配的条目/Java ((Non-)?Type)? Proposals/
对我有意义,但其他条目没有.
那么,其他人做了什么?
我正在用Java实现一个工作池.
这基本上是一个完整的对象加载,它将拾取数据块,处理数据然后存储结果.由于IO延迟,工作人员将远远多于处理器核心.
服务器专用于此任务,我想从硬件中获取最大性能(但不,我不想在C++中实现它).
最简单的实现是使用单个Java进程来创建和监视许多工作线程.另一种方法是为每个worker运行一个Java进程.
假设为了争论一个四核Linux服务器,您会预期哪些解决方案更具性能?为什么?
您可以假设工人永远不需要彼此沟通.
我正在使用SWIG从Java访问C++代码.
公开由非const引用传递的std :: string参数的最简单方法是什么?
感谢std_string.i,由于typemaps.i和const std::string&
s公开java.lang.String
,我将原型通过引用传递给Java数组.但是非const std :: string&作为不透明指针类型公开SWIGTYPE_p_std__string
.
当前:
// C++ method -> // Java wrapper of C++ method
void foo( int & i ) -> public void foo( int[] i ); // OK
void bar( const std::string & s ) -> public void bar( String s ); // OK
void baz( std::string & s ) -> public void baz( SWIGTYPE_p_std__string s ); // :(
Run Code Online (Sandbox Code Playgroud)
期望:
void foo( int & i ) -> …
Run Code Online (Sandbox Code Playgroud)