代码之家  ›  专栏  ›  技术社区  ›  blu

如何将Java代码移植到C?

  •  0
  • blu  · 技术社区  · 15 年前

    我正在看一个用Java实现的模式,它有一些关于它如何对齐(可以移植到C)的问题。

    爪哇:

    class Foo
    {
        private Class someClass;
        ...
    }
    
    class Bar
    {
        private Field some Field;
    }
    

    首先,类存储域对象的实例。看起来Java公开了用于通过反射访问对象上的字段的类型的反射方法。在C中,什么类型是同义词?我是先使用对象,然后使用MethodInfo,还是有更好的方法?

    第二,字段是在框架中键入的,并通过以下方式分配:

    someClass.getDeclaredField(fieldName)
    

    在.NET框架中是否存在我应该使用的并行程序?

    现在,我创建了一个自定义对象来代替foo中的类,并为field创建了一个自定义对象。有没有更好的方法?

    2 回复  |  直到 15 年前
        1
  •  5
  •   Darin Dimitrov    15 年前

    你可以看看 FieldInfo 类型及 GetField 方法。

    代码可能在行之间看起来有点像:

    class Foo
    {
        public Type someClass;
        ...
    }
    
    class Bar
    {
        private FieldInfo some_Field;
    
        public Assign(string fieldName)
        {
            Foo foo = new Foo();
            some_Field = foo.someClass.GetField(fieldName);
        }
    }
    
        2
  •  0
  •   Alican    15 年前

    您还可以使用以下方法获取字段的值:

     foo.GetType().GetField("name").GetValue(foo).ToString()
    

    在这个例子中,我们假设类foo有一个名为“name”的字段。这有什么帮助?我们这样想:

    private string getValueOfUnknownField(string fieldName)
    {
        return(foo.GetType().GetField(fieldName).GetValue(foo).ToString());
    }
    

    即使更改类foo并向其添加新字段,也不需要更改getValueofUnknownField方法。