此代码提示用户通过键入Y或N(是/否)来确认预订.如果他们输入y或Y,它会调用一个方法setBooked(),该方法基本上只是将boolean变量"预订"设置为"真".在isBooked()刚刚返回boolean值,所以我可以之前测试/后,看它是否实际工作.
实际的代码确实没有像我预期的那样工作,如果你键入"y"它会立即正常工作但是如果你输入任何其他东西它会再次提示你,如果你键入"y"再次工作但是这次你键入任何东西否则它会停止并转移到下一个"客户"(方法被称为约8次)
所以基本上有一个原因是它提示用户两次而不是仅仅评估他们第一次输入"y"或"Y"的内容?
System.out.println(customer.isBooked());
System.out.println( "Confirm booking for " + customer.getName() + "(Y/N)");
Scanner scan = new Scanner(System.in);
if (scan.nextLine().equals("y") || scan.nextLine().equals("Y"))
customer.setBooked();
System.out.println("Booked");
System.out.println(customer.isBooked());
Run Code Online (Sandbox Code Playgroud) 当我使用此代码生成Java中的随机5张牌时,我得到了正确的结果,但每行卡片前面都是null.这是为什么?例如,我得到nullJ♥10♥8♥Q♦9♠,我尝试了一些检查以防止它,但无济于事.如果您有任何建议,请告诉我,我做错了什么?
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class RandomHandGenerator {
public static void main(String[] args) throws InterruptedException {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
String[] faces = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
char[] suits = {'?', '?', '?', '?'};
ArrayList<String> deck = new ArrayList<String>();
for (int i = 0; i < suits.length; i++) {
for (int j = 0; j < faces.length; j++) {
String temp …Run Code Online (Sandbox Code Playgroud) 这是我的主要课程:
import java.util.ArrayList;
public class MainClass {
public static void main(String[] args){
ArrayList<SecondClass.InnerClass> list=new ArrayList<SecondClass.InnerClass>();
list.add(new SecondClass.InnerClass()); //error here (read below)
}
}
Run Code Online (Sandbox Code Playgroud)
这是第二堂课:
public class SecondClass {
public class InnerClass{
}
}
Run Code Online (Sandbox Code Playgroud)
在MainClass,at list.add,我收到此错误:
不能访问类型为SecondClass的封闭实例.必须使用SecondClass类型的封闭实例限定分配(egxnew A(),其中x是SecondClass的实例).
我需要InnerClass非静态因为InnerClass需要对非静态方法进行静态引用.我怎样才能添加元素ArrayList?
我有以下代码:
Email email = new SimpleEmail();
email.setHostName("smtp.googlemail.com");
email.setSmtpPort(465);
email.setAuthenticator(new DefaultAuthenticator("ruth.sistem@gmail.com", "XXXXXX"));
email.setSSLOnConnect(true);
email.setFrom("ruth.sistem@gmail.com");
email.setSubject("TestMail");
email.setMsg("This is a test mail ... :-)");
email.addTo("ruth.sistem@gmail.com");
email.send();
Run Code Online (Sandbox Code Playgroud)
我无法连接到gmail,连接出现错误突发,但是所有连接信息都是正确的,不知道什么阻止了我的代码发送电子邮件的连接,我不能发送简单的电子邮件,我没有丝毫的想法这是什么.
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.googlemail.com:465
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1410)
at org.apache.commons.mail.Email.send(Email.java:1437)
at com.observatorioLegislativo.util.EmailTeste.enviaEmailSimples(EmailTeste.java:27)
at com.observatorioLegislativo.util.EmailTeste.<init>(EmailTeste.java:13)
at com.observatorioLegislativo.bean.Teste.main(Teste.java:41)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.googlemail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1972)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642)
at javax.mail.Service.connect(Service.java:317)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at …Run Code Online (Sandbox Code Playgroud) 我一直在阅读java中的继承,我有一个相当简单的问题,我在手册页上找不到.
就拿这个例子.
我想先定义一个类:
Bycicle bike = new Bicycle();
Run Code Online (Sandbox Code Playgroud)
后来我想说它是一辆山地自行车,所以它属于某个子类,并为山地自行车设置了一个属性(比如numberOfGears).
这可能按此顺序吗?或者我是否需要立即说它是山地自行车?
所以我正在使用一个公共API,它向我发送一个带有名为'public'的布尔字段的JSON对象.
{
...
"public" : true,
...
}
Run Code Online (Sandbox Code Playgroud)
我正在使用GSON将其解析为Java类,但这迫使我声明以下变量,当然Java lexer/parser不同意:
private boolean public;
Run Code Online (Sandbox Code Playgroud)
有没有办法让我的变量被命名public?
我正在从访问数据库填充 JTable。第一次运行代码时,表加载完美。然后从 JDialog 向数据库添加新记录。我试图做的是loadData()在 JDialog 关闭时调用方法,但表没有更新。
这是我的loadData()方法:
private void loadData() {
System.out.println("sssss");
final String [] columnNames={"Seq", "First Name", "Last Name","Num1","Num2","Num3"};
connectDb();
data = new Object[rows][columns];
int row = 0;
try {
while(rs.next()){
for(int col = 0 ; col<columns; col++ ){
if(col==0)
data[row][col]=rs.getString("contact_seq");
if(col==1)
data[row][col]=rs.getString("contact_fname");
if(col==2)
data[row][col]=rs.getString("contact_lname");
if(col==3)
data[row][col]=rs.getString("contact_num1");
if(col==4)
data[row][col]=rs.getString("contact_num2");
if(col==5)
data[row][col]=rs.getString("contact_num3");
}
row++;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
model = new DefaultTableModel(data, columnNames){
/**
*
*/
private …Run Code Online (Sandbox Code Playgroud) 我想创建一个方法,用另一个字符串递归扩展输入字符串.
public class StringTest {
public static String addZeichenkette(String out, int i) {
out += "bla";
if (i > 0) {
i--;
addZeichenkette(out, i);
}
return out;
}
public static void main(String[] args) {
String out = "Hello";
out = addZeichenkette(out, 7);
System.out.println(out);
}
}
Run Code Online (Sandbox Code Playgroud)
输出应该是:
Helloblablablablablablabla
Run Code Online (Sandbox Code Playgroud)
相反它
Hellobla
Run Code Online (Sandbox Code Playgroud)
主要方法必须不受影响(方法调用除外).
在学习Java Generics参数化时,我想到了这段代码:
public interface Comparable<T> {
public int compareTo(T o);
}
public static <T extends Comparable<T>> int countGreaterThan(T[] anArray, T elem) {
int count = 0;
for (T e : anArray)
if (e.compareTo(elem) > 0)
++count;
return count;
}
Run Code Online (Sandbox Code Playgroud)
我想测试它,所以我写了这个:
Integer[] iArray = new Integer[10];
for (int i=0; i<10; i++){
iArray[i] = new Integer(i);
}
int a = countGreaterThan(iArray, Integer.valueOf(5));
Run Code Online (Sandbox Code Playgroud)
但是在调用方法时,编译器在最后一行给出了错误消息countGreaterThan:
The method countGreaterThan(T[], T) in the type Main is not applicable for the arguments (Integer[], Integer)
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西吗
例如,我有20个不同JTextField,让我说我需要将文本设置为所有"随机",所以我不想这样做:
field1.setText("Random");
field2.setText("Random");
field3.setText("Random");
.
.
.
field20.setText("Random");
Run Code Online (Sandbox Code Playgroud)
有办法避免这种情况吗?
java ×10
swing ×2
expand ×1
function ×1
gson ×1
if-statement ×1
inheritance ×1
jakarta-mail ×1
jtable ×1
method-call ×1
ms-access ×1
recursion ×1
string ×1