假设我有以下课程:
public class Dog {
public String name = "Edvard";
}
public class Animal {
public Dog madDog = new Dog();
}
Run Code Online (Sandbox Code Playgroud)
如果我通过Gson运行它,它会将其序列化如下:
GSon gson = new GSon();
String json = gson.toJson(new Animal())
result:
{
"madDog" : {
"name":"Edvard"
}
}
Run Code Online (Sandbox Code Playgroud)
这非常好,但我想用Gson自动为所有类添加className,所以我得到以下结果:
{
"madDog" : {
"name":"Edvard",
"className":"Dog"
},
"className" : "Animal"
}
Run Code Online (Sandbox Code Playgroud)
有谁知道这是可能的某种拦截器或与Gson的东西?
是否可以在C#中声明一个只在其名称空间中使用的类?
例:
namespace a
{
public class Dog
{
public void sayHello()
{
System.Console.WriteLine('hello');
}
}
}
namespace b
{
public class DogWalker
{
public void Walk()
{
Dog dog = new Dog();
dog.sayHello();
}
}
}
namespace a
{
public class DogWalker
{
public void Walk()
{
Dog dog = new Dog();
dog.sayHello();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的情况下,命名空间b中的DogWalker应该在编译时抛出错误消息,但是应该允许命名空间a中的DogWalker,因为它在与Dog相同的命名空间中.
如果有人能指出正确的方向,我将不胜感激.
如果我有两个类,如:
Class A {
public String importantValue = "stringvalue";
@Autowire
public B b;
}
@Component
@Scope("prototype");
Class B {
// This should be set automatically
// from IOC Container upon injection.
public String importantValueFromA;
}
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?一旦B类被注入A,它应该自动设置B中的值.