导航:首页 > 编程语言 > 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