小编Sar*_*yan的帖子

为什么静态字段没有使用google.gson.GsonBuilder JSON解析器序列化?

我尝试使用google.gson.GsonBuilder 序列化对象,如下所示:

public class JsonHelper
{
    public static String ToJson(Object o, Type oType)
    {
        Gson gson = new().setPrettyPrinting().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create();
        gson.toJson(o, oType);
    }
}

public class JsonTest
{
   public static String staticField;

   public static String ToJson()
   {
       JsonTest newJsonTest = new JsonTest();
       newJsonTest.staticField = TelephoneStatus.GetPhoneIMEI(); // let's say we use static field to keep IMEI

       Type oType = new TypeToken<JsonTest>(){}.getType();
       return JsonHelper.ToJson(newJsonTest, oType);
   }
}
Run Code Online (Sandbox Code Playgroud)

返回值JsonTest类方法ToJson()是空的.如果我将staticField字段声明更改为非静态,它将按预期工作.考虑为什么静态字段没有被序列化,是否应该将其视为错误?或者它被认为是不必要的?

如果我有一个列表, …

java serialization static android json

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

单元测试异步方法:如何显式断言内部任务被取消

我最近编写了一个异步方法,调用外部长时间运行的异步方法,所以我决定通过CancellationToken启用取消.该方法可以同时调用.

实现结合了Stephen Cleary的书" Concurrency in C#Cookbook "中描述的指数退避超时技术,如下所示;

/// <summary>
/// Sets bar
/// </summary>
/// <param name="cancellationToken">The cancellation token that cancels the operation</param>
/// <returns>A <see cref="Task"/> representing the task of setting bar value</returns>
/// <exception cref="OperationCanceledException">Is thrown when the task is cancelled via <paramref name="cancellationToken"/></exception>
/// <exception cref="TimeoutException">Is thrown when unable to get bar value due to time out</exception>
public async Task FooAsync(CancellationToken cancellationToken)
{
    TimeSpan delay …
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing async-await cancellationtokensource

6
推荐指数
1
解决办法
3356
查看次数

观察者设计模式

观察者设计模式中,主体通过调用update()每个观察者的操作来通知所有观察者.一种方法是这样做

void notify() {
   for (observer: observers) {
      observer.update(this);
   }
}
Run Code Online (Sandbox Code Playgroud)

但是这里的问题是每个观察者都按顺序更新,观察者的更新操作可能不会被调用,直到更新之前的所有观察者.如果有一个观察者有一个无限循环的更新,那么它之后的所有观察者将永远不会得到通知.

题:

  1. 有办法解决这个问题吗?
  2. 如果是这样,那会是一个很好的例子吗?

java design-patterns observer-pattern

5
推荐指数
3
解决办法
4244
查看次数

从列表中循环Fortran

我使用Fortran,我想知道是否有可能做出类似的东西

  do i = array
    write (*,*) i
  end do
Run Code Online (Sandbox Code Playgroud)

其中array是不必排序的整数列表.

fortran loops for-loop

5
推荐指数
1
解决办法
7508
查看次数

实体框架删除记录

我试图从表中删除记录,store但我DeleteObject在我的代码中有识别问题.我有参考

using System.Linq;
using System.Data.Entity;
using System.Data.Objects;
Run Code Online (Sandbox Code Playgroud)

但它仍然无法正常工作.我正在MVC 4使用Visual Studio 2012.

public void Delete()
{
    using (var db = new AppContext())
    {
        var query_D = (from b in db.Stores
                   where b.storeID == 1
                   select b).First();

        db.DeleteObject(query_D);
        db.SaveChanges();
    } 
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

linq asp.net-mvc entity-framework

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

C++做while循环

我有一个包含10个项目的向量(为简单起见所有相同的类称为'a').我想要做的是检查'A'不是a)隐藏墙壁或b)隐藏另一个'A'.我有一个碰撞功能,可以做到这一点.

这个想法只是让这个循环类通过并将'A'移动到下一个位置,如果该药水引起碰撞,那么它需要在屏幕上给自己一个新的随机位置.由于屏幕较小,因此很有可能将元素放在另一个(或墙顶等)上.代码的逻辑在我的脑海中运行良好 - 但调试代码时对象只是卡在循环中,并保持在相同的位置.'A'应该在屏幕上移动,但它保持静止!

当我注释掉Do while循环,并移动'MoveObject()'函数时,代码完美地运行'A'正在屏幕上移动.只是当我尝试添加额外的功能时它就不起作用了.

    void Board::Loop(void){


        //Display the postion of that Element. 
        for (unsigned int i = 0; i <= 10; ++i){


            do {

                if (checkCollisions(i)==true){
                moveObject(i); 
                }
                else{
                    objects[i]->ResetPostion();

                }

            }
            while (checkCollisions(i) == false);
            objects[i]->SetPosition(objects[i]->getXDir(),objects[i]->getYDir());
        }

}
Run Code Online (Sandbox Code Playgroud)

下面的类是碰撞检测.我稍后会扩展.

    bool Board::checkCollisions(int index){

    char boundry = map[objects[index]->getXDir()][objects[index]->getYDir()];

    //There has been no collisions - therefore don't change anything 
    if(boundry == SYMBOL_EMPTY){
        return false;
    }
    else{
        return true;

    }

}
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激.我会给你买一个虚拟啤酒:-)

谢谢

编辑:

ResetPostion - >这将使元素A在屏幕上的随机位置moveObject - >这将查看对象的方向并适当调整x和Y线.

c++ while-loop do-while

5
推荐指数
1
解决办法
5826
查看次数

Javascript范围和变量

var name = "Bob";

var book = {
    name: "Harry Potter",
    writeName: function() {
        return function() {
            document.writeln(this.book.name);
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

当我打电话给你

book.writeName()();
Run Code Online (Sandbox Code Playgroud)

我想要它打印哈利波特(而不是鲍勃)它上面做的,但是这个:

var book2 = book;
book = null;
book2.writeName()();
Run Code Online (Sandbox Code Playgroud)

现在寻找this.book(它null)应该寻找的地方this.book2

我该如何引用变量?

javascript variables scope

5
推荐指数
1
解决办法
74
查看次数

在Android中验证网络连接

我想知道如何在发送数据之前验证 Android中的网络连接?谁能帮我 ?我尝试这个代码,但没有结果

public boolean isConnectingToInternet() {
    ConnectivityManager connectivity = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity != null) 
    {
        NetworkInfo[] info = connectivity.getAllNetworkInfo();
        if (info != null)
        { 
           for (int i = 0; i < info.length; i++) 
           {
               if (info[i].getState() == NetworkInfo.State.CONNECTED)
               {
                   return true;
               }
           }
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

android connectivity

5
推荐指数
1
解决办法
126
查看次数

DrJava:无法使用JDK8.0运行代码

有人在使用 jdk 8.0 时遇到问题吗?

好吧,我不知道为什么我会遇到一些干扰。不知道为什么,在“drjava”中编译 javacode 之后,当我尝试运行它时,它说......“当前文档与交互窗格不同步,应该重新编译!”

我尝试将编译器从 JDK 8.0 更改为 Eclipse Compiler 0.A48,它显示了相同的消息..在频繁重新编译并单击运行按钮而不是使用快捷键(F2)后,它运行了!然后我将编译器切换回 JDK 8.0,它也运行了。(快捷方式也有效)..但是经过几次代码编译后,它开始显示相同的文本......

最令人恼火的是,当我尝试更改编译器时,我的 drjava 挂起!我想我必须回到 JDK 7u51 ..但我真的很好奇为什么会发生这种情况

java compilation java-8 drjava

5
推荐指数
1
解决办法
2万
查看次数

具有验证的MVC嵌套视图模型

我正在尝试将登录和注册表单放入相同的视图中.我在其他问题上做了所有建议,但我的问题仍然没有解决.

这是我的父视图authentication.cshtml:

@model Eriene.Mvc.Models.AccountVM
    <div class="row">
        <div class="col-md-6">
            @Html.Partial("_Login", Model.Login ?? new Eriene.Mvc.Models.LoginVM())
        </div>
        <div class="col-md-6">
            @Html.Partial("_Register", Model.Register  ?? new Eriene.Mvc.Models.RegisterVM())
        </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

在我的部分中,我使用这样的形式:

@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @id = "login-form", @role = "form", @class = "login-form cf-style-1" }))
Run Code Online (Sandbox Code Playgroud)

其中一个动作是这样的:

[HttpPost]
[AllowAnonymous]
public ActionResult Register(RegisterVM registerVM)
{
    if (ModelState.IsValid)
    {
        User user = new Data.User();
        user.Email = registerVM.Email;
        user.ActivationCode = Guid.NewGuid().ToString();
        user.FirstName = registerVM.FirstName;
        user.LastName = registerVM.LastName;
        user.Password = PasswordHelper.CreateHash(registerVM.Password);
        return RedirectToAction("Index", "Home");
    }

    return View("Authentication", new …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc asp.net-mvc-validation razor

5
推荐指数
1
解决办法
919
查看次数