小编And*_*mas的帖子

如何以编程方式更改根日志记录级别

我有以下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)

现在,在发生特定事件时,我想以编程方式将根记录器的级别从调试更改为错误.我不能使用变量替换,我必须在代码中执行此操作.

怎么做到呢 ?谢谢.

java logging logback

134
推荐指数
5
解决办法
13万
查看次数

Javadoc链接到另一个包中的类

我有两个包,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 javadoc

58
推荐指数
2
解决办法
5万
查看次数

Java数组的克隆方法

当在数组上使用时,Java中的clone()方法究竟返回了什么?它是否返回一个包含从原始数据复制的数据的新数组?

例如:

int[] a = {1,2,3};
int[] b = a.clone();
Run Code Online (Sandbox Code Playgroud)

java arrays clone

58
推荐指数
1
解决办法
7万
查看次数

使用JaxB编组实现公共接口的对象列表

我正在尝试编组实现通用接口的对象列表.涉及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 xml jaxb

36
推荐指数
2
解决办法
6万
查看次数

为什么List中没有tail()或head()方法来获取last或first元素?

我最近与同事讨论了为什么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 api list

22
推荐指数
3
解决办法
2万
查看次数

读取字符行并获取文件位置

我正在从文本文件中读取连续的字符行.文件中字符的编码可能不是单字节.

在某些时候,我想获得下一行开始的文件位置,这样我可以稍后重新打开文件并快速返回到该位置.

问题

是否有一种简单的方法可以做到这两点,最好是使用标准的Java库?

如果没有,什么是合理的解决方法?

理想解决方案的属性

理想的解决方案是处理多种字符编码.这包括UTF-8,其中不同的字符可以用不同的字节数表示.理想的解决方案主要依赖于受信任且支持良好的库.最理想的是标准Java库.第二好的是Apache或Google库.解决方案必须是可扩展的.将整个文件读入内存不是一种解决方案.返回位置不应要求在线性时间内读取所有先前字符.

细节

对于第一个要求,BufferedReader.readLine()是有吸引力的.但缓冲显然会干扰获得有意义的文件位置.

不太明显,InputStreamReader也可以提前读取,干扰获取文件位置.从InputStreamReader文档:

为了能够有效地将字节转换为字符,可以从基础流中提取比满足当前读取操作所需的更多字节.

该方法RandomAccessFile.readLine() 每个字符读取一个字节.

通过取字符的低八位的字节值并将字符的高八位设置为零,将每个字节转换为字符.因此,此方法不支持完整的Unicode字符集.

java nio java-io

22
推荐指数
1
解决办法
8544
查看次数

将Java嵌入到C++应用程序中?

我得到了一个用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交互以删除所选对象.

c++ java embed java-native-interface

21
推荐指数
1
解决办法
3万
查看次数

Eclipse Mylin如何有用?

在我的Eclipse Preferences -> Java -> Editor -> Content Assist -> Advanced设置中,我看到以下内容:

  • Java非类型提案
  • Java提案
  • Java提案(以任务为中心)
  • Java类型提案
  • JPA提案(对我来说总是空的)
  • PDE API工具建议(在内容辅助循环设置中选中时跳过)
  • SWT模板建议(总是空的)
  • 模板建议(总是空的)
  • Word Proposals (在Content-Assist Cycling设置中选中时跳过)

我尝试使用谷歌搜索(单独)"Java非类型提案"和"Java提案(以任务为中心)",但没有找到任何描述它们.

匹配的条目/Java ((Non-)?Type)? Proposals/对我有意义,但其他条目没有.

那么,其他人做了什么?

  • 我从未见过PDE,SWT,模板或Word提案的结果.它们什么时候有用?
  • 我也从未真正开始使用Mylyn,我想这是提供"Java Proposals(以任务为中心)".如果我没有使用Mylyn理解的错误跟踪器,那会给我带来什么呢?

java eclipse content-assist

14
推荐指数
1
解决办法
6340
查看次数

Java性能进程与线程

我正在用Java实现一个工作池.

这基本上是一个完整的对象加载,它将拾取数据块,处理数据然后存储结果.由于IO延迟,工作人员将远远多于处理器核心.

服务器专用于此任务,我想从硬件中获取最大性能(但不,我不想在C++中实现它).

最简单的实现是使用单个Java进程来创建和监视许多工作线程.另一种方法是为每个worker运行一个Java进程.

假设为了争论一个四核Linux服务器,您会预期哪些解决方案更具性能?为什么?

您可以假设工人永远不需要彼此沟通.

java performance multithreading process worker

14
推荐指数
2
解决办法
3834
查看次数

SWIG:如何包装std :: string&(通过引用传递的std :: string)

我正在使用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)

c++ java swig

11
推荐指数
1
解决办法
7977
查看次数