導航:首頁 > 編程語言 > javaobject類型判斷

javaobject類型判斷

發布時間:2022-12-15 13:24:38

1. java中判斷輸入對象類型

摟主很有想法,這涉及到你想得到多少種對象,雖然這個問題有點無聊,但也可以視為一個練習思維的例子。
首先,前提是不知道有哪些對象類型,以及其表現形式。
其次,2樓說的對,Java輸入都是String。
因此,我們設計一下要做的事情:
1. 提供一組對象類型名稱和判斷方法的注冊列表。
2. 對給定的String,按照注冊列表中的判斷方法逐一執行,假如有返回成功的,就列印「這是。。。」。

好了,這就是思路,假如要硬往設計模式上套,可以套Command Chain.

主要是判斷方法,那麼就把它定義成一個借口:

interface TypeStringChecker
{
String getTypeName () ;
boolean isInstanceOf (String textValue)
}

完美一點,利用所謂的工廠創建模式,可以使用反射機制,從配置文件里讀出來類型名稱,並創建實例: TypeStringChecker [] checkerList ;

檢查時的代碼:

CheckString (String textValue)
{
foreach checker in checkerList
{
if (checker.isInstanceOf (textValue))
print ("[" + textVaue + "] is instance of : " + chceker.getName ());
}
print ("Unsupported Type Or this is a String [" + textVaue + "] ) ;
}

比如編寫一個整數的判斷,就可以用:
boolean isInstanceOf (String text)
{
try
{
Integer.parseInt (text) ;
}
catch (Throwable e) {return fasle ;}
return true ;
}

進一步的,假設復雜一點的Point,表現形式是:x,y。那麼就可以寫一個類來判斷。

可以參考WebWork中的類型轉換器阿。

呵呵,有趣的問題。

2. JAVA怎樣判斷一個對象的類型

System.out.println(object.getClass().getName());

使用java.lang.Object 中的getClass()方法

/**Class<?> getClass()
Returns the runtime class of this Object. */

3. java 怎樣判斷一個list里是否有一個對象(object)

1 中自定義,遍歷List直到找到對象即可,但List中的對象需要自定義equals方法,即可以與其他對象比較,在什麼情況下相同。如滿意回答。
2 但上述方法具有特定性,另外還有一些思路,

保證list中的對象是可排序的,即實現了Comparable介面功能
如果list沒有排序,則可以使用Collecitons類對集合類,不是Map進行操作
如Collections.sort(List),可以進行先排序
然後 利用Collections中的binarySearch方法,找到對象所在下標
int index = Collections.binarySearch(list)
如果index <0,則表示沒有該對象,如果index >=0,則表示該對象在list中的位置下標,因此,這裡面我們不需要直接取出對象判斷,主要看Comparable介面如何實現
String已經實現了equals和comparable介面的方法
所以可以直接使用上訴功能,進行判斷,而不用一一遍歷。

4. 如何在java裡面對Object的類型值進行一個大小的比較

作者:Tao Li
鏈接:https://www.hu.com/question/36897771/answer/69763955
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

java中類的比較一般有兩種方法,一種就是類本身實現Comparable<T>這個介面,比如通過對用戶的姓名進行比較排序:

package com.ailot.compare;

public class User implements Comparable<User> {

private String name;
private int age;
private String sex;

public User(String name,int age,String sex){
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}

@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", sex=" + sex + "]";
}

@Override
public int compareTo(User u) {
// TODO Auto-generated method stub
int c = this.name.compareTo(u.name);
if(c==0){
return 0;
}else if(c > 0){
return 1;
}else{
return -1;
}
}
}

Test.java

package com.ailot.compare;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class Test {

public static void main(String[] args) {
List<User> userList = new ArrayList<User>();
for(int i=0;i<10;i++){
int s = new Random().nextInt(20);
User u = new User(s+"張三",i,"男");
userList.add(u);
}
Collections.sort(userList);
for(User user : userList){
System.out.println(user.toString());
}
}

}

排序的話直接用 Collections.sort( userList ) ;就可以了。
作者:Tao Li
鏈接:https://www.hu.com/question/36897771/answer/69763955
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

另一種就是類沒有實現Comparable<T>這個介面,這就需要自己新建一個比較的類,通過實現Comparator<T>來對類進行比較,還是對User類的姓名進行比較排序:

User.java

package com.ailot.compare;

public class User {

private String name;
private int age;
private String sex;

public User(String name,int age,String sex){
this.name = name;
this.age = age;
this.sex = sex;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}

@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", sex=" + sex + "]";
}
}

UserCompare.java

package com.ailot.compare;

import java.util.Comparator;

public class UserCompare implements Comparator<User> {

@Override
public int compare(User u1, User u2) {
// TODO Auto-generated method stub
int c = u1.getName().compareTo(u2.getName());
if(c == 0){
return 0;
}else if(c < 0){
return -1;
}else{
return 1;
}
}

}

Test.java

package com.ailot.compare;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class Test {

public static void main(String[] args) {
List<User> userList = new ArrayList<User>();
for(int i=0;i<10;i++){
int s = new Random().nextInt(20);
User u = new User(s+"張三",i,"男");
userList.add(u);
}
Collections.sort(userList,new UserCompare());
for(User user : userList){
System.out.println(user.toString());
}
}

}

排序的話直接用 Collections.sort(userList,new UserCompare());就可以了。

5. java如何判斷object不是map<string.obj

key的數據類型範圍不同。
1、Object:可以作為key的有:number,string,以及es6裡面的symbol。
2、 Map:js目前存在的數據類型均可以作為key。

6. java中object是什麼類型

object類是所有java類的祖先。每個類都使用
object
作為超類。所有對象(包括數組)都實現這個類的方法。
在不明確給出超類的情況下,java會自動把object作為要定義類的超類。

7. 如何在java裡面對Object的類型值進行一個大小的比較

java中 Objiect 類 為所有類的 父類,又稱上帝。
java中允許多層繼承,這意味著總有一個最高的父類,你是沒有手動讓他繼承其它類的。
而JVM會將所有的未繼承其它類的類默認繼承了Object類,這表明,只要是類均為Object的子類,換個說法 所有的類都可以使用Object類中的方法,與其他類作比較。只需調用方法
equals 即可。注意在這里比較的是地址值。

8. 怎樣判斷一個Object對象是一個什麼類型如(String)

public boolean isString(Object obj){
boolean flag=false;
if(obj instanceof java.lang.String){
flag=true;
}
return flag;

}
或許樓主已經解決了該問題,但還是希望別人進來能夠看到該答案!

9. java如何判斷對象屬性是什麼類型

java中判斷Object對象類型
復制代碼
Object param = params.get(i);
if (param instanceof Integer) {
int value = ((Integer) param).intValue();
prepStatement.setInt(i + 1, value);
} else if (param instanceof String) {
String s = (String) param;
prepStatement.setString(i + 1, s);
} else if (param instanceof Double) {
double d = ((Double) param).doubleValue();
prepStatement.setDouble(i + 1, d);
} else if (param instanceof Float) {
float f = ((Float) param).floatValue();
prepStatement.setFloat(i + 1, f);
} else if (param instanceof Long) {
long l = ((Long) param).longValue();
prepStatement.setLong(i + 1, l);
} else if (param instanceof Boolean) {
boolean b = ((Boolean) param).booleanValue();
prepStatement.setBoolean(i + 1, b);
} else if (param instanceof Date) {
Date d = (Date) param;
prepStatement.setDate(i + 1, (Date) param);
}
復制代碼

閱讀全文

與javaobject類型判斷相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151
伊克塞爾文檔怎麼進行加密 瀏覽:893
app轉賬是什麼 瀏覽:163