![](/img/trans.png)
[英]How can I call the retrieved JSON object from one method to another without storing it as a string?
[英]How can I transfer a variable from one method to another without storing it in a class in Java?
我有一個包含三種方法的類,用於確定信用卡是否有效,信用卡類型是什么,以及用x代替最后四位數字來顯示數字。 這是針對一個班級的,我的老師不希望我在此班級中存儲信用卡的變量。 因此,在另一堂課中,我必須在一種方法中詢問信用卡號並將其存儲在該方法中。 但是,我想要第二種方法,該方法調用用於顯示信用卡類型和格式化格式的方法,但是我不知道如何將變量從第一種方法傳遞到下一種方法。 請幫忙。
這是我的readCreditCard方法,該方法詢問信用卡號並確定其是否有效:
public void readCreditCard(CreditCard creditCard)
{
System.out.print("\nPlease enter your Credit Card Number: ");
String creditCardNum = keyboard.next();
while (creditCard.isCardValid(creditCardNum) == false)
{
System.out.println("Invalid credit card number" + creditCardNum);
System.out.println("Please try again.");
System.out.print("\nPlease enter your Credit Card Number: ");
creditCardNum = keyboard.next();
}
}
我想要一個名為printCreditCard的方法,該方法允許我使用readCreditCard方法中的變量creditCardNum,以便可以在CreditCard類中使用其他兩個方法,但是我不確定該怎么做。
這是CreditCard類的內容:
public boolean isCardValid(String creditCard)
{
boolean valid;
String singleDigitPrefix = creditCard.substring(0, 1);
String doubleDigitPrefix = creditCard.substring(0, 2);
if ((creditCard.length() == 13 || creditCard.length() == 16) && singleDigitPrefix.equals("4"))
{
valid = true;
}
else if (creditCard.length() == 16 && (doubleDigitPrefix.equals("51") ||
doubleDigitPrefix.equals("52") || doubleDigitPrefix.equals("53") ||
doubleDigitPrefix.equals("54") || doubleDigitPrefix.equals("55")))
{
valid = true;
}
else if (creditCard.length() == 15 && doubleDigitPrefix.equals("37"))
{
valid = true;
}
else
{
valid = false;
}
return valid;
}
public String getCardType(String creditCard)
{
String cardType = null;
String singleDigitPrefix = creditCard.substring(0, 1);
String doubleDigitPrefix = creditCard.substring(0, 2);
if ((creditCard.length() == 13 || creditCard.length() == 16) && singleDigitPrefix.equals("4"))
{
cardType = "Visa";
}
else if (creditCard.length() == 16 && (doubleDigitPrefix.equals("51") ||
doubleDigitPrefix.equals("52") || doubleDigitPrefix.equals("53") ||
doubleDigitPrefix.equals("54") || doubleDigitPrefix.equals("55")))
{
cardType = "MasterCard";
}
else if (creditCard.length() == 15 && doubleDigitPrefix.equals("37"))
{
cardType = "American Express";
}
else
{
}
return cardType;
}
public String maskCardNumber(String creditCard)
{
String formattedNum = null;
if (getCardType(creditCard).equals("Visa"))
{
if (creditCard.length() == 13)
{
formattedNum = "XXXXXXXXX" + creditCard.substring(8, 13);
}
else
{
formattedNum = "XXXXXXXXXXXX" + creditCard.substring(11, 16);
}
}
else if (getCardType(creditCard).equals("MasterCard"))
{
formattedNum = "XXXXXXXXXXXX" + creditCard.substring(11, 16);
}
else if (getCardType(creditCard).equals("American Express"))
{
formattedNum = "XXXXXXXXXXX" + creditCard.substring(10, 15);
}
else;
return formattedNum;
}
}
創建一個具有稱為creditCardNum等成員變量的bean,該方法將該bean返回到需要的方法。
如果我正確理解了您的問題,我會看到兩種選擇
選項1:如果您想要的是單個值,請返回信用卡號。
public int readCreditCard(CreditCard creditCard)
{
System.out.print("\nPlease enter your Credit Card Number: ");
String creditCardNum = keyboard.next();
while (creditCard.isCardValid(creditCardNum) == false)
{
System.out.println("Invalid credit card number" + creditCardNum);
System.out.println("Please try again.");
System.out.print("\nPlease enter your Credit Card Number: ");
creditCardNum = keyboard.next();
}
}
選項2:如果要通過方法傳遞/返回多個值,則傳遞信用卡對象(bean /模型)將解決您的問題。
這是例子。
public class CreditCardBean{
private String creditCardNumber;
private Date expirationDate;
public String getCreditCardNumber() {
return creditCardNumber;
}
public void setCreditCardNumber(String creditCardNumber) {
this.creditCardNumber = creditCardNumber;
}
public Date getExpirationDate() {
return expirationDate;
}
public void setExpirationDate(Date expirationDate) {
this.expirationDate = expirationDate;
}
}
public CreditCardBean readCreditCard(CreditCard creditCard)
{
CreditCardBean bean = new CreditCardBean();
System.out.print("\nPlease enter your Credit Card Number: ");
String creditCardNum = keyboard.next();
while (creditCard.isCardValid(creditCardNum) == false)
{
System.out.println("Invalid credit card number" + creditCardNum);
System.out.println("Please try again.");
System.out.print("\nPlease enter your Credit Card Number: ");
creditCardNum = keyboard.next();
bean.setCreditCardNumber(creditCardNum);
}
// Set other details which you want to pass.
// bean.setExpirationDate(<setDate here>);
return bean;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.