Java 如何为构造函数创建实例?
我无法为此编码创建对象。如何访问此值我想在此编码中返回msg值Java 如何为构造函数创建实例?,java,constructor,Java,Constructor,我无法为此编码创建对象。如何访问此值我想在此编码中返回msg值 package com.my; import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.log4j.VectorAppender; import org.apache.log4j.spi.LoggingEvent; import java.util.Vector; public class LogCapture {
package com.my;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.VectorAppender;
import org.apache.log4j.spi.LoggingEvent;
import java.util.Vector;
public class LogCapture
{
private final VectorAppender appender;
private final Level level;
public LogCapture(final Level level)
{
this.level = level;
Logger root = Logger.getRootLogger();
appender = new VectorAppender();
root.addAppender(appender);
}
public static void main(String args[])
{
new LogCapture(Level.INFO);
LogCapture.getMessage() ;
}
public String getMessage()
{
Vector vector = appender.getVector();
String msg = null;
switch (vector.size())
{
case 0:
break;
case 1:
LoggingEvent event = (LoggingEvent) vector.elementAt(0);
msg = event.getRenderedMessage();
break;
}
return msg;
}
}
我不确定我是否理解这个问题,但听起来很简单。您可以创建这样一个实例:
new LogCapture(Level.INFO);
您可以在此处找到其他日志级别:
编辑,因为OP添加了更多代码:
更改main方法中的代码,使其显示
LogCapture logCapture = new LogCapture(Level.INFO);
logCapture.getMessage();
恕我直言,您已经在该网站上呆了一个多月,问了之前的八个问题,但您的代码格式仍然不正确。阅读问题区域右侧的“如何设置格式”框以及更详细地讨论格式是非常值得的。你在问题上投入的精力越多,你得到的答案的质量和数量就越好。编辑:克罗津这次是为你做的,但下一次,你自己做是值得的。我不明白这个问题@有什么问题吗?我想得到msg的值。我该怎么做?打开vector.size很奇怪。我希望有一个for循环或类似的东西。我想得到msg的值。我该怎么做?什么?看起来您的方法getMessage返回消息。但是我不知道如何调用此方法?您调用它的方式与调用任何方法的方式相同。首先以我在回答中发布的相同方式创建一个实例,将其分配给属性或变量,然后调用getMessage。例如logCapture.getMessage这不是一个很好的问题解释,我也不是一个读心术的人。你有例外吗?上面说什么?你有编译错误吗?上面说什么?