小编Dan*_*nca的帖子

GSON转换为LinkedHashMap而不是我的对象

我有这段代码:

public abstract class Repository<Entity extends BaseObject> {

...

public void readFromJson(){
    String content = "JSON content here";
    Gson gson = new Gson();
    Type entityType = new TypeToken<JSONObject<Entity>>(){}.getType();

    jsonObject = gson.fromJson(content, entityType);

    for (Entity ent : jsonObject.getEntities()) ;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试执行foreach时,我的实体对象不再是Entity类型而是LinkedHashMap,我得到以下异常:java.lang.ClassCastException:java.util.LinkedHashMap无法强制转换为com.tranca.bookstore.domain.shared.BaseObject

这是JSONObject类(由我创建)

public class JSONObject<Entity> {

private List<Entity> entities = new ArrayList<Entity>();
private long lastId = -1;
public List<Entity> getEntities() {
    return entities;
}
public void setEntities(List<Entity> entities) {
    this.entities = entities;
}
public long getLastId() {
    return lastId;
} …
Run Code Online (Sandbox Code Playgroud)

java gson

9
推荐指数
1
解决办法
6624
查看次数

gsutil ServiceException:401匿名调用者没有对存储桶的storage.objects.list访问权限,即使我已登录gcloud

我正在尝试创建一个内部应用程序以将文件上传到Google Cloud。我不希望每个用户或该应用程序都登录,所以我使用的是服务帐户。我登录到服务帐户,一切正常,但是当我尝试上载时,出现此错误:ServiceException:401匿名调用者无权访问bucket的storage.objects.list

这是我得到的错误

如您所见,我已使用服务帐户登录,并且我的帐户(无论服务还是个人)均有效

google-cloud-storage gsutil gcloud

9
推荐指数
6
解决办法
2万
查看次数

将方法组转换为表示C#中的函数的自定义类

我想创建一个包装委托的自定义类,并使用一个隐式运算符向其强制转换方法,以便可以创建调用列表,但是c#不允许直接强制转换,只能进行2步强制转换。你该怎么做?

public class Test
{
    public class CustomFunc<T> {
        private Func<T> Func { get; set; }

        public CustomFunc(Func<T> func)
        {
            Func = func;
        }

        public void DoSomething() {
        }

        public void Invoke()
        {
            //do something else
            Func.Invoke();
        }

        public static implicit operator CustomFunc<T>(Func<T> func) { return new CustomFunc<T>(func); }
    }

    public void Main() {
        AddTestMethod(TestMethod);//this gives "Argument 1: cannot convert from 'method group' to 'Test.CustomFunc<bool>'" compilation error
        AddTestMethodThatWorks(TestMethod);//<- this works
    }

    public void AddTestMethod(CustomFunc<bool> func) {
        func.DoSomething();
        //add method to …
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
215
查看次数

标签 统计

c# ×1

gcloud ×1

google-cloud-storage ×1

gson ×1

gsutil ×1

java ×1