“Field 类型怎么判断”这个问题,通常出现在 ORM / 序列化 / 反射 / 配置解析 等场景里。不同语言、不同框架,判断方式不一样。下面我按常见场景给你系统说明,你可以对号入座。
from sqlalchemy import inspect
from sqlalchemy.types import Integer, String
insp = inspect(Model)
for col in insp.columns:
print(col.name, col.type)
判断具体类型:
from sqlalchemy import Integer
if isinstance(col.type, Integer):
print("是 Integer 类型")
✅ 推荐方式:isinstance(col.type, 某类型)
from pydantic import BaseModel, Field
from typing import get_origin, get_args
class User(BaseModel):
age: int
name: str
for name, field in User.model_fields.items():
print(name, field.annotation)
判断:
from typing import List
if field.annotation == int:
print("int 类型")
if get_origin(field.annotation) is list:
print("List 类型")
from dataclasses import fields
for f in fields(obj):
print(f.name, f.type)
判断:
if f.type == int:
...
Field field = obj.getClass().getDeclaredField("age");
Class<?> type = field.getType();
if (type == int.class) {
...
}
@Column
private Integer age;
通过 EntityManager:
entityManager.getMetamodel()
或 Hibernate:
sessionFactory.getClassMetadata(Entity.class)
t := reflect.TypeOf(obj)
field, _ := t.FieldByName("Age")
fmt.Println(field.Type)
判断:
if field.Type.Kind() == reflect.Int {
...
}
type FieldType<T> = T extends string
? "string"
: T extends number
? "number"
: "other";
运行时判断(JS):
typeof value
✅ 判断 Field 类型,通常分三步:
你可以直接告诉我:
我可以直接给你可复制的示例代码 ✅
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。