如何从另一个类打印行
Posted
技术标签:
【中文标题】如何从另一个类打印行【英文标题】:How to print lines from another class 【发布时间】:2017-05-29 06:10:20 【问题描述】:更新 我一直都错了。我用我正在使用但没有在此处添加的方法阻止了输出。现在它运行良好,我可以从其他进程中写入。
我想知道是否有任何方法可以从外部将一行打印到控制台视图。我有一个具有 onMessage 方法的类(class1)。
public class Class1 implements MessageListener
...
public void onMessage(Message msg)
System.out.println(msg.getText());
...
然后我有一个带有 main 的类,它创建这个类的一个实例,并且在做事时 Class1 的 onMessage 会触发。
public class Class2
public static void main(String args[])
Class1 obj = new Class1();
...
while(!":q".equals((action = scanner.next())))
obj.anotherAction(action);
...
当我尝试对象似乎被阻止时。我认为我正在接近错误的解决方案。也许从外部块调用 println 因为它没有任何地方可以打印。
我想了解发生了什么以及如何解决这个问题。我的问题是使用从 Class1 创建 Class2 main 的输出。
希望我解释清楚,我不是母语人士。
编辑 现在我添加了更多编码。我现在意识到等待标准输入可能会干扰其他类的 Print 。我应该为输出运行外部进程吗?我怎么能在同一个控制台视图上做呢?
【问题讨论】:
你应该看看Looging
。
so : obj.onMessage(new Message());不管用 ?我不知道“消息”所以我现在不知道它是如何工作的
是您尝试在 main 中创建 Class1() 对象时出现的问题吗?
你应该添加控制台的错误信息。
“对象似乎被阻止”是什么意思?另外,“使用从 Class1 创建 Class2 main 的输出”是什么意思?你想完成什么?
【参考方案1】:
试试这个 Class1.java
import java.util.Scanner;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.TextMessage;
public class Class1
public static void main(String args[]) throws JMSException
Class2 obj = new Class2();
Scanner s=new Scanner(System.in);
Message m;
TextMessage textMessage = null;
System.out.println("Enter a message");
textMessage.setText(s.next());
m=(Message)textMessage;
obj.onMessage(m);
Class2.java
import javax.jms.*;
public class Class2 implements MessageListener
public void onMessage(Message msg)
System.out.println(msg.toString());
TextMessage textMessage = (TextMessage) msg;
try
System.out.println(textMessage.getText());
catch (JMSException e)
e.printStackTrace();
【讨论】:
onMessage 方法在另一个类确实发送消息时触发。我要上传我的代码,因为我第一次没有解释好 好的,等待您的编辑/代码。以及有关 JMS 的更多信息,请参阅此 oracle java ee 6 教程docs.oracle.com/javaee/6/tutorial/doc/bnceh.html 我认为我的问题更多是关于管理 In/Out 而不是 JMS(应用程序的其余部分运行良好)。我更新了我的帖子。谢谢! 这个消息类是什么?是JMS的还是你自己创建的?? 确实属于JMS,我的Class1实现了javax.jms的MessageListener。我用它来创建异步消息传递。这个应用程序就像一个聊天,你有服务器和客户端。客户端在 obj.anotherAction(action) 上发送消息,并在其他客户端发送消息时接收它们。以上是关于如何从另一个类打印行的主要内容,如果未能解决你的问题,请参考以下文章
如何从另一个 ViewController 中选择 UITableViewController 行?