小编Win*_*ter的帖子

ViewBag名称可以与DropDownList中的Model属性名称相同吗?

我正在研究ASP.NET MVC-4 Web应用程序.我在我的action方法中定义了以下内容来构建一个SelectList:

ViewBag.CustomerID = new SelectList(db.CustomerSyncs, "CustomerID", "Name");
Run Code Online (Sandbox Code Playgroud)

然后我在我的DropDownListFor内部渲染我View:

 @Html.DropDownListFor(model => model.CustomerID, (SelectList)ViewBag.CustomerID, "please select")
Run Code Online (Sandbox Code Playgroud)

如图所示,我将ViewBag属性命名为等于Model属性名称CustomerID.从我自己的测试中,定义相同的名称不会导致任何问题或冲突,但我应该避免这种情况吗?

asp.net asp.net-mvc html-helper html.dropdownlistfor asp.net-mvc-4

11
推荐指数
1
解决办法
1339
查看次数

计算矩阵中对角线的总和

我需要用C++计算矩阵中两个对角线的总和,我已经有了一个解决方案,但我必须愚蠢,因为我无法理解它在做什么,所以我想知道是否有另一个版本,我可以了解.这是完成工作的代码:

cout<<"Jepi rangun e  matrices"<<endl;  // pra bejme manipulim me matrice katrore ku rreshtat=kolonat
cin>>n;
cout<<"Tani jepi elementet e matrices"<<endl; // lexohet matrica

for(i=1;i<=n;i++)
{
     for(j=1;j<=n;j++)
        cin>>a[i][j];
}

d=0;
s=0; // ketu e keni kushtin si dhe mbledhjen per te dy diagonalet me dy variabla te ndryshme

for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
    {
        if(i==j)
            d=d+a[i][j];
        if(j==n-i+1 || i==n-j+1) 
            s=s+a[i][j];
    }
Run Code Online (Sandbox Code Playgroud)

难以理解的部分是

if(j==n-i+1 || i==n-j+1) 
    s=s+a[i][j];
Run Code Online (Sandbox Code Playgroud)

这是我更改的整个代码,但它不适用于辅助对角线:

#include <iostream>
using namespace std;

int main()
{
    int d=0,s=0; // ketu e keni kushtin si dhe …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm matrix

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

如何聚焦Textfield?

我想从代码中集中libGDX Textfield而不单击Textfield.
有没有办法做到这一点?

java libgdx

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

如何在IntelliJ中运行两次相同的应用程序?

我正在使用IntelliJ来开发我的客户端 - 服务器应用程序并且刚刚发现了化合物.基本上我可以同时运行我的客户端和我的服务器,每次我想测试它时都会节省我无用的操作.但是,我想用2个客户端和1个服务器来测试我的应用程序,因为它是一个游戏,没有任何意义上单独玩.IntelliJ不允许我在复合中添加两次相同的应用程序.我怎样才能做到这一点?

我现在拥有的: 复合配置

另外,我无法告诉运行配置在启动之前自行运行.当我单击以下图像中的按钮时,我所在的配置不会显示.

不能自己跑

intellij-idea

8
推荐指数
5
解决办法
4626
查看次数

Java重复通用定义

我正在尝试实现一个基本类来创建,读取,更新和删除对象.我相信我能找到一个图书馆来做这件事,但我自己也是出于教育目的.

所以我认为保存的所有内容都是实体,并且它们具有特定类型的标识符:

interface Entity<T extends Serializable> extends Serializable
{
    T getIdentifier();
}
Run Code Online (Sandbox Code Playgroud)

实体是可序列化的,也是它们的标识符.然后,我有我EntityPersistor应该从他们的内容中保存实体(使用序列化)并从他们的密钥命名.我现在唯一的这个persistor实现是将它们保存在磁盘上.它使用标识符作为文件的名称来保存它.

这是我的实体持久性:

interface EntityPersistor<K extends Serializable, T extends Entity<K>> extends Iterable<T>
{
    void save(T entity);

    void delete(T entity);

    void deleteById(K id);

    T getById(K id);

    boolean contains(K id);

    List<T> loadAll();
}
Run Code Online (Sandbox Code Playgroud)

所以,问题是当我想使用它时,我必须重新定义键的类型两次.我想写:

interface EntityPersistor<T extends Entity<K extends Serializable>> extends Iterable<T>
Run Code Online (Sandbox Code Playgroud)

但它会产生编译器错误.所以我必须这样使用它:

EntityPersistor<String, Product> persistor = new FileEntityPersistor<>();
Run Code Online (Sandbox Code Playgroud)

这是不方便的.

是否有解决方法或更好的方法来做到这一点?我觉得它会使我的声明不那么可读,但用法更重要.

编辑:

我忘了提到那个 class Product implements Entity<String>

java generics crud

8
推荐指数
1
解决办法
348
查看次数

使用CMake和Maven构建C++和Java代码并在jar中捆绑

我有一个使用CMake构建的遗留C++代码.它会生成一个.so文件.我需要用Java包装这个代码并构建一个包含Java代码和C++的jar用于部署.

使用CMake构建C++代码的步骤很简单:

cd /to/pkg/dir
cmake .
make
Run Code Online (Sandbox Code Playgroud)

.so文件在build /目录下生成.如果我将整个项目转换为maven,我将不得不修改目录结构(这是一个博客,解释了如何工作http://blog.bigpixel.ro/2012/07/building-cc-applications-with- maven /).但是,我不想这样做.可以选择从maven调用上面显示的前两行来构建.so文件,然后将它包含在最终的jar中吗?提前致谢.

c++ java maven

8
推荐指数
1
解决办法
3333
查看次数

如何使用字符串func startsWith来检查字符串列表而不是一个?

我有一个名单:

val listOfNames = List("john", "melanie", "maya", "jack")
Run Code Online (Sandbox Code Playgroud)

我有一个字符串名称全名:

val fullName = "john legend"
Run Code Online (Sandbox Code Playgroud)

现在我想使用字符串func startsWith并检查全名是否以其中的任何名称开头listOfNames,那么如何在一行中检查它?

就像是

if (fullName.startsWith(listOfNames)) {
   //do something
}
Run Code Online (Sandbox Code Playgroud)

谢谢!!

scala

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

向float中添加和减去精确值

题:

浮点的总量是有限的,大约有2 ^ 32个.使用浮动,您可以直接使用下一个或上一个java.lang.Math.nextAfter.我称之为一次飞跃.我的主要问题,由子问题组成,我如何使用跳跃导航浮动?

浮动导航

首先,如何将浮动一次移动到另一个浮动?

public static float moveFloat(float value, int leaps) {
    for(int i = 0; i < Math.abs(leaps); i++)
        value = Math.nextAfter(value, Float.POSITIVE_INFINITY * signum(leaps));
    return value;
}
Run Code Online (Sandbox Code Playgroud)

这种方式应该适用于理论,但实际上并未经过优化.我怎么能一次性添加呢?

我还需要知道2个花车之间有多少跳跃.以下是此示例的示例实现:

public static int getLeaps(float value, float destination) {
    int leaps = 0;
    float direction = signum(destination - value);

    while(value * direction < destination * direction) {
        value = Math.nextAfter(value, Float.POSITIVE_INFINITY * direction);
        leaps++;
    }

    return leaps;
}
Run Code Online (Sandbox Code Playgroud)

同样,这里的问题也一样.这种实现不合适.

额外:

我称之为飞跃,是否有实际名称?

背景: …

java floating-point

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

Consumer <T>在HashMap中映射了Class <T>

我想创建一个IdentityHashMap<Class<T>, Consumer<T>>.基本上,我想用一种方法来映射一个类型,说明如何处理这种类型.

我想动态地能够用对象X说,执行Y.我能做到

private IdentityHashMap<Class<?>, Consumer<?>> interceptor = new IdentityHashMap<>();
Run Code Online (Sandbox Code Playgroud)

但它很糟糕,因为我在使用它时必须在lamba中投射对象.

例:

interceptor.put(Train.class, train -> {
    System.out.println(((Train)train).getSpeed());
});
Run Code Online (Sandbox Code Playgroud)

我想做的是

private <T> IdentityHashMap<Class<T>, Consumer<T>> interceptor = new IdentityHashMap<>();
Run Code Online (Sandbox Code Playgroud)

但似乎不允许这样做.有没有办法做到这一点 ?使用此类型的方法映射类型的最佳解决方法是什么?

java generics dictionary type-safety java-8

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

如何使用libgdx正确实现一个对话框

我正在努力在我的程序中实现一个对话框.主程序不使用阶段.但是当用户的生命值为0时,我想弹出一个重启游戏或退出游戏的对话框.

我使用以下代码为Dialog创建了一个单独的类.

public class GameOver {

    //dialog game over
    private Dialog dlgGameOver;
    private Skin skin;
    private Stage stage;
    private TextButton btnMain;
    private TextButton btnTryAgain;
    private GameScreen gameScreen;

    public GameOver(final GameScreen gameScreen){
        //create the game over dialog
        this.gameScreen = gameScreen;
        skin = new Skin(Gdx.files.internal("uiskin.json"));
        dlgGameOver = new Dialog(" ",skin);
        stage = new Stage();
        btnMain = new TextButton("Main", skin);
        btnTryAgain = new TextButton("Try Again", skin);
        dlgGameOver.text("Game over!");
        dlgGameOver.button(btnTryAgain);
        dlgGameOver.button(btnMain);
        dlgGameOver.show(stage);
        btnMain.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeEvent event, Actor actor) {
                System.out.println("Button …
Run Code Online (Sandbox Code Playgroud)

java dialog libgdx

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