(java.lang.String) 无法应用于 (java.lang.Object)

2023-12-23

我有一个名为的监听器类TopicS我试图从一个名为 readMessages 的 gui 中调用它

当我尝试使用以下方法运行 TopicS 类时,

   private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    System.out.println("test test test"); 
    System.out.print("you pressed" +topicCombobox.getSelectedItem());
    TopicS a = new TopicS();
    a.addTopicToListner(topicCombobox.getSelectedItem());
}                 

它给了我错误说

主题中的 addTopicListner(java.lang.String) 无法应用于 (java.lang.Object)

当我将字符串更改为对象时,我收到其他错误。主要方法如下,没有 GUI 也可以正常工作,但我需要将其添加到 GUI。我想做的是将值传递给组合框(即字符串数组),并将该字符串放入主题中(其中 (t) 现在是

 import java.util.Hashtable;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class TopicS implements MessageListener
{

 private TopicConnection topicConnection;
 private TopicSession topicSession;
 public Topic topic;
 private TopicSubscriber topicSubscriber;


 public TopicS()
            {}
            public void addTopicToListner(String t){
  try
  {
   // create a JNDI context
   Hashtable properties = new Hashtable();
   properties.put(Context.INITIAL_CONTEXT_FACTORY,"org.exolab.jms.jndi.InitialContextFactory");
   properties.put(Context.PROVIDER_URL,"rmi://localhost:1099/");
   Context context = new InitialContext(properties);

   // retrieve topic connection factory
   TopicConnectionFactory topicConnectionFactory = 
       (TopicConnectionFactory)context.lookup("JmsTopicConnectionFactory");
   // create a topic connection
   topicConnection = topicConnectionFactory.createTopicConnection();

   // create a topic session
   // set transactions to false and set auto acknowledgement of receipt of messages
   topicSession = topicConnection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);

   // retrieve topic
   topic = (Topic) context.lookup(t);

   // create a topic subscriber and associate to the retrieved topic
   topicSubscriber = topicSession.createSubscriber(topic);

   // associate message listener
   topicSubscriber.setMessageListener(this);

   // start delivery of incoming messages
   topicConnection.start();
  }
  catch (NamingException e)
  {
   e.printStackTrace();
  }
  catch (JMSException e)
  {
   e.printStackTrace();
  }
 } 

/* public static void main(String[] args)
 //{

  try
  {
   TopicS listener = new TopicS();
   Thread.currentThread().sleep(2000);
  }

  catch (InterruptedException e)
  {
   e.printStackTrace();
  }
 }
 */
 // process incoming topic messages
 public void onMessage(Message message)
 {
  try
  {
   String messageText = null;
   if (message instanceof TextMessage)
    messageText = ((TextMessage)message).getText();
   System.out.println(messageText);
  }
  catch (JMSException e)
  {
   e.printStackTrace();
  }
 }
}

JComboBox.getSelectedItem()返回类型Object, not String。您可以致电toString()其结果返回对象的字符串表示形式。看起来好像您正在尝试返回一种类型Topic,这意味着您需要覆盖toString()方法上Topic返回您想要的值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(java.lang.String) 无法应用于 (java.lang.Object) 的相关文章

随机推荐

  • Identity Server 4 - 资源所有者密码授予和 Google 身份验证

    我有一个应用程序 当前使用资源所有者密码授予类型来允许用户通过单页应用程序登录 目前 身份服务器与 Web API 托管在同一项目中 但是 我们希望添加用户使用其 Google 帐户注册 登录的功能 目前 用户数据存储在表中并由 ASP N
  • 如何使用 EPPlus 将 Excel 行解析回类型

    EPPlus 有一个方便的LoadFromCollection
  • asp.net 不显示配置的自定义 404 页面

    在我的网络配置中我有
  • UICollectionView 间距边距

    我有一个UICollectionView显示照片 我已经使用创建了collectionviewUICollectionViewFlowLayout 它效果很好 但我想在边距上留有间距 是否可以使用这样做UICollectionViewFlo
  • Xamarin.Forms 热重载在 UWP 中不起作用

    我已阅读并遵循本页上有关 UWP 中热重载的所有提示 https learn microsoft com en us visualstudio xaml tools xaml hot reload troubleshooting view
  • 如何包含 CodeIgniter 生成的页面?

    包含 CI 文件的最简单方法是什么 假设我想包括http example com ci index php mycontroller http example com ci index php mycontroller 在 example
  • 自定义 ItemTemplate 不会出现在 Visual Studio 2015“添加新项”对话框中

    我看过这个问题 https stackoverflow com questions 13325950 custom itemtemplate not showing up in visual studio 2010 add new item
  • 键盘隐藏 Android WebView 上的输入字段

    在我的 Android 应用程序上 我有一个 Activity 其布局几乎是 WebView 元素 在此 WebView 中 我正在加载在线表单以供用户填写 但是 底部输入字段 文本框 保留在软键盘后面 用户无法填写它们 对于这种情况有哪些
  • iPhone 更改应用程序名称

    我正在尝试在 iTunes Connect 中更改我的应用程序名称以进行应用程序更新 我没有看到该选项 这仍然可能吗 或者苹果是否删除了此功能 你绝对可以做到 它位于版本详细信息页面上的应用程序本地化下 您需要单击此处的编辑 然后您可以更改
  • python 类变量在 __init__ 中更改时可以成为实例变量吗?

    据我所理解var is a 类变量 here class MyClass var hello def init self print self var 那是一个实例变量 class MyClass def init self var sel
  • setThemingColor 仅适用于叶节点 dbId

    从文档看来 您应该能够使用任何 dbId 调用 setThemingColor 但它似乎只有在您传递的 id 是叶节点时才有效 它是否正确 还有什么方法可以批量调用此方法 或者一次只能调用一个叶节点 我想将 dbId 数组传递到该方法中 是
  • 左偏和右偏?

    我读过一篇关于部分统一 http eed3si9n com herding cats partial unification html作者提到了左偏和右偏数据类型 有人可以向我解释一下吗 左偏和右偏数据类型 与什么有关系功能1 Is Eit
  • Flutter:popAndPushNamed 参数传递到新页面?

    我正在 Flutter 上编写一个应用程序 我需要执行 popAndPushNamed 但我还需要将参数传递给我正在推送的页面 我能怎么做 是否有另一种方式来弹出和推送 或者我必须寻找不同的解决方案 这件事让我发疯 提前致谢 为了将数据发送
  • 自动解除 JQuery 中事件处理程序的绑定

    是否可以对 JQuery 说 嘿 在添加此事件处理程序之前取消绑定任何事件处理程序 而不显式调用 unbind 就像是 jq selector click function true 其中 true 表示我想取消绑定设置到该元素的所有单击处
  • Ansible自动为用户生成随机密码

    我正在尝试创建将创建用户列表的剧本 但是 我还想为每个用户生成随机密码 生成密码后 我希望在剧本文件旁边有一个包含 username new generated pa ssword 键值的文本文件 是否可以在不开发新模块的情况下做到这一点
  • 如何从 Windows 8 应用程序访问 SQL Server?

    我意识到我的 Windows 8 应用程序无法访问本地 SQL Server 实例 相反 我在 Azure 中有一个 SQL Server 在 SQL Server Management Studio 中 我只需更改查询字符串并像其他数据库
  • SVN - 拒绝、更改和恢复到以前的版本

    我们有一个有几个用户的 SVN 存储库 一名用户意外删除了一个目录并签入了更改 我可以直接签出旧版本并重新签入 但我不想丢失 SVN 中目录的版本信息 我如何拒绝更改 如果您使用命令行 典型的方法是进行 反向合并 例如 如果版本 125 是
  • SAS 无效“闰年”日期问题 yymmdd8

    我正在阅读一些原始数据 其中有几个错误的日期 具体来说 有人在非闰年键入了 2 月 29 日 例如 data null input test yymmdd8 format test date9 cards 20270229 run 客户希望
  • Android 的浮动窗口与 FLAG_SHOW_WHEN_LOCKED 结合失败

    我的应用程序在锁定屏幕之前向用户显示一个对话框 这是一个包含 DialogFragment 的简单 Activity 来自支持库 因为该应用程序在 2 2 上运行 由于显示这些对话框的实际活动不是 Android 标准的浮动窗口 getWi
  • (java.lang.String) 无法应用于 (java.lang.Object)

    我有一个名为的监听器类TopicS我试图从一个名为 readMessages 的 gui 中调用它 当我尝试使用以下方法运行 TopicS 类时 private void jButton1ActionPerformed java awt e