我只需要得到案例类的字段名。我对它的价值不感兴趣。我以为getClass.getDeclaredFields.map(_.getName)会返回一个字段名列表。
scala> case class User(id: Int, name: String)
defined class User
scala> User.getClass.getDeclaredFields
res14: Array[java.lang.reflect.Field] = Array(public static final User$ User$.MODULE$)
scala> User.getCl
你好,我有一个类的层次结构,在每个层次上都有一个payload字段和一个id字段,您可以通过它们反序列化payload.My,问题是,考虑到您,我不想使层次结构扁平化,您如何反序列化类似的东西。
我需要在每一步做出决定:
public class Root
{
public int id { get; set; }
public Message msg { get; set; }
}
public abstract class Message
{
我正在通过反射检查"ReflectMe“类。
使用getDeclaredFields方法,我得到了"str“字段。
现在,我需要获取类"Target“,该类的静态方法被分配给该字段。
有可能吗?
代码:
package myproj.reflect;
public class Target {
public static final String theString = "abcd";
}
package myproj.reflect;
public class ReflectMe {
private String str = Targ
如何从表示字段的给定字符串值中提取case类的字段的值。
例如:
case class Person(name: String, age: Int)
val a = Person("test",10)
现在,在这里给定一个字符串name或age,我希望从变量a中提取该值。我该怎么做呢?我知道使用反射可以做到这一点,但我不确定如何做到这一点。
我想要复制一个具有区分的联合类型的对象,其中一个或两个特定字段被分配了不同的值,任何其他字段都被直接复制过。
棘手的部分是,我试图编写一个函数来完成这个任务,这个函数将保持不变的工作状态,即使将更多的情况添加到联合中,所以我不能使用match;相反,我正在寻找一个使用反射来检查特定案例的字段的解决方案。下面是我到目前为止从对象中提取值的相反部分,而不管它的确切类型是什么:
let case a =
match FSharpValue.GetUnionFields (a, typeof<Term>) with
| info, _ ->
info
我有对象的层次结构和对应它们的模式的层次结构。此层次结构的中间级别上的架构不包括特定的继承字段。我希望从它继承的模式将“继承”此排除,但如果它们在其Meta类中添加自己的排除字段,则情况似乎并非如此:
from marshmallow import fields
from marshmallow.schema import Schema
class AncestorSchema(Schema):
a = fields.Str()
b = fields.Str()
class IntermediateSchema(AncestorSchema):
c = fiel
因此,我有一个Scala类,如下所示:
class TestClass {
var value: Option[Int] = None
}
我正在解决一个问题,我有一个字符串值,并且我想在运行时使用反射将其强制到那个OptionInt中。因此,在另一段代码(对TestClass一无所知)中,我有如下代码:
def setField[A <: Object](target: A, fieldName: String, value: String) {
val field = target.getClass.getDeclaredField(fieldName)
val coer
这可能是一个奇怪的问题,但我正在尝试一些东西,并停留在这一点上。
对于枚举器,我使用sealed trait - case object方法。我正在尝试为每个注释生成一个Typescript类,以避免枚举的前端和后端值之间不匹配。下面是我的示例枚举实现。
sealed trait BankingTypeEnum {
val id: Long
val name: String
}
object BankingTypeEnum {
case object Cheque extends BankingTypeEnum {
override val id: Long = 1
不确定我是否能做到这一点,但是,假设我有一个对象:
public class SomeObject
{
private String field1;
private String field2;
....
//Blah Blah getters and setters for all fields
}
我想知道这些字段中有多少是非空的。我的特定对象有40个字段,所以我真的不希望使用if块来分别检查这40个字段中的每一个。我在想我能不能通过反射来做到这一点?但我真的不知道我在用它做什么。只要遍历所有字段并检查它们的值就好了。
我觉得这对某些人来说是不需要动脑筋的
我正在尝试为我的搜索创建一个通用方法,但我不知道如何从类返回字段列表。
假设我有一堂课:
public class Table
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
public string Address { get; set; }
}
现在,我想返回一个列表,如下所示:
"ID"
"Name"
"Address"
我该怎么做?
尝试过这样的方法:
Field
我有折页的台词:
public static class Foo
{
public static Func<object,string> Bar = myObject => myObject.ToString();
}
在Foo.Bar(someObject);中无法使用反射执行类似的操作。正如我所看到的,Bar不是一种方法,当然是一个字段,而且我不能使用MethodInfo.Invoke();
我想要开发一个bindTo实用程序方法,它用包含在一个Map<String, Object>中的所有兼容值(其中键是字段的名称)初始化对象的所有字段(即target)。假设f表示target对象中的一个字段,vals是包含初始化值的Map,因此我必须:
检查映射vals是否包含一个键等于字段名的条目。
如果该条目存在,则必须检查其值是否与字段的类型兼容。
如果是,则必须将该值设置为target对象中的字段target。
这与以下代码相对应:
/*
* 1. checks if the map `vals` contains an entry with a ke
有许多不错的库可用于将Scala案例类写入CSV文件或从CSV文件中读取。我正在寻找更多的东西,它可以处理嵌套的案例类。例如,在这里,Match有两个Players
case class Player(name: String, ranking: Int)
case class Match(place: String, winner: Player, loser: Player)
val matches = List(
Match("London", Player("Jane",7), Player("Fred",23)),
Match
病态的好奇心。假设我有这样的等级:
class Base {
public virtual int Field { get; set; }
}
class Derived : Base {
int _field;
public override int Field { get { return _field; } set { _field = value; } }
}
如果实例化Base,编译器将神奇地为Field属性创建一个后备字段。
因此,假设Derived不引用基本实现,那么当Derived被实例化时,是否会创建备份字段?这是在C#规范中指定的,还是留给编译器实现?
更新