如何编写比较对象的compareTo方法?

我正在学习数组,基本上我有一个收集姓氏,名字和分数的数组。 我需要编写一个compareTo方法,它将比较姓氏和第一个名称,以便列表可以按字母顺序从姓氏开始排序,然后如果两个人具有相同的姓氏,那么它将对第一个名称进行排序。 我很困惑,因为我书中的所有信息都是比较数字,而不是对象和字符串。 这是我到目前为止编码的内容。 我知道这是错的,但它至少解释了我认为我在做什么: public int compare(Object obj) // creating a method to compare { Student s = (Student) obj; // creating a student object // I guess here I’m telling it to compare the last names? int studentCompare = this.lastName.compareTo(s.getLastName()); if (studentCompare != 0) return studentCompare; else { if (this.getLastName() s.getLastName()) return 1; […]

JavaBean包装与JavaFX属性

我想使用JavaFX属性进行UI绑定,但我不希望它们出现在我的模型类中(请参阅在模型类中使用javafx.beans属性 )。 我的模型类有getter和setter,我想根据这些创建属性。 例如,假设一个实例bean的方法是String getName()和setName(String name) ,我会写 SimpleStringProperty property = new SimpleStringProperty(bean, “name”) 期望property.set(“Foobar”)将触发对bean.setName的调用。 但这似乎不起作用。 我错过了什么?

Java强制转换操作符如何工作?

我正在尝试调试Java中涉及ClassCastException的问题。 为了解决这个问题,我需要知道当我从Object转换为特定类型时会发生什么。 任何人都可以向我解释Java强制转换操作符在Java级别和JVM级别上的工作原理吗?

JavaFX启动另一个应用程序

我一直在用JavaFx粉碎我的脑袋…… 这适用于没有运行应用程序的实例的情况: public class Runner { public static void main(String[] args) { anotherApp app = new anotherApp(); new Thread(app).start(); } } public class anotherApp extends Application implements Runnable { @Override public void start(Stage stage) { } @Override public void run(){ launch(); } } 但是如果我在另一个应用程序中执行new Thread(app).start() ,我会得到一个exception,说明我不能进行两次启动。 此外,我的方法由另一个应用程序上的观察者调用,如下所示: @Override public void update(Observable o, Object arg) { […]

Spring + Hibernate:具有相同标识符值的不同对象已与会话关联

在我的应用程序中,它使用Spring和Hibernate,我解析一个CSV文件,并在每次从CSV文件中读取记录时通过调用handleRow()填充数据库。 我的域名模型: ‘家庭’有很多’SubFamily’ ‘SubFamily’有很多’Locus’ ‘Locus’属于’Species’ Family SubFamily Locus都是双向映射。 码: public void handleRow(Family dummyFamily, SubFamily dummySubFamily, Locus dummyLocus) { //Service method which access DAO layers CommonService serv = ctx.getCommonService(); boolean newFamily=false; Family family=serv.getFamilyByFamilyId(dummyFamily.getFamilyId()); if(family==null){ newFamily=true; family=new Family(); family.setFamilyId(dummyFamily.getFamilyId()); family.setFamilyIPRId(dummyFamily.getFamilyIPRId()); family.setFamilyName(dummyFamily.getFamilyName()); family.setFamilyPattern(dummyFamily.getFamilyPattern()); family.setRifID(dummyFamily.getRifID()); } SubFamily subFamily = family.getSubFamilyBySubFamilyId( dummySubFamily.getSubFamilyId() ); if(subFamily==null){ subFamily=new SubFamily(); subFamily.setRifID(dummySubFamily.getRifID()); subFamily.setSubFamilyId(dummySubFamily.getSubFamilyId()); subFamily.setSubFamilyIPRId(dummySubFamily.getSubFamilyIPRId()); subFamily.setSubFamilyName(dummySubFamily.getSubFamilyName()); […]

JTable prepareEditor的工作原理

我不明白prepareEditor是如何工作的,我无法使用prepareEditor中的Action为prepareRenderer设置可见性规则,因为我在附加的Image中捕获了 1.st行的规则按预期工作,如果没有选择JCheckBox,其他TableCells是不可见的(使用JTable选择hightlighter),但如果我在1.st TableColumn中选择JCheckBox,那么我不能只显示规则+ Mail TableColumn,只显示TableRow中的所有组件,我该怎样才能实现 import java.awt.Component; import javax.swing.*; import javax.swing.event.*; import javax.swing.table.*; public class TableWithCheckBoxOrBlank { private Object[] columns = new Object[]{ “Select”, “Name”, “Rule”, “Mail”, “Include”, “Phone”}; private Object[][] data = { {false, “Bill”, false, “Blabla@bla”, false, “00 000 000”}, {false, “Edd”, false, “Blabla@bla”, false, “00 000 000”}, {false, “Paul”, false, “Blabla@bla”, false, […]

Java:如何将字符串拆分多个字符?

我试图在网上搜索解决这个问题,但我没有找到任何东西。 我写了以下抽象代码来解释我在问什么: String text = “how are you?”; String[] textArray= text.splitByNumber(4); //this method is what I’m asking textArray[0]; //it contains “how ” textArray[1]; //it contains “are ” textArray[2]; //it contains “you?” splitByNumber方法每4个字符拆分字符串“text”。 我怎么能创建这个方法? 非常感谢

如何在apache HttpClient上设置TLS版本

如何在HttpClient上更改支持的TLS版本? 我正在做: SSLContext sslContext = SSLContext.getInstance(“TLSv1.1”); sslContext.init( keymanagers.toArray(new KeyManager[keymanagers.size()]), null, null); SSLSocketFactory socketFactory = new SSLSocketFactory(sslContext, new String[]{“TLSv1.1”}, null, null); Scheme scheme = new Scheme(“https”, 443, socketFactory); SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(scheme); BasicClientConnectionManager cm = new BasicClientConnectionManager(schemeRegistry); httpClient = new DefaultHttpClient(cm); 但是当我检查创建的套接字时,它仍然说支持的协议是TLSv1.0,TLSv1.1和TLSv1.2。 实际上,我只是希望它停止使用TLSv1.2,对于这个特定的HttpClient。

如何有效地迭代Java Map中的每个条目?

如果我有一个用Java实现Map接口的对象,并希望迭代其中包含的每一对,那么通过地图的最有效方法是什么? 元素的排序是否取决于我对界面的具体映射实现?

如何将单元格置于JTable中心

我的代码存在特定问题。 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.*; import java.awt.Color; class ver_his_sign extends JFrame { ver_his_sign() { JTable table = new JTable(); JScrollPane scroll = new JScrollPane(); DefaultTableModel model = new DefaultTableModel(get_data(), get_header()); JFrame hk = new JFrame(“Historial de Significados”); Image icon = Toolkit.getDefaultToolkit().getImage(“JLPT.jpg”); […]