小编sta*_*lus的帖子

null参数的IllegalArgumentException或NullPointerException?

我有一个简单的属性的setter方法,null不适合这个特定的属性.我总是在这种情况下被撕裂:我应该扔一个IllegalArgumentException,还是一个NullPointerException?从javadocs看,两者似乎都合适.有某种理解标准吗?或者这只是你应该做的任何事情之一,而且两者都是正确的?

java null exception nullpointerexception illegalargumentexception

535
推荐指数
17
解决办法
15万
查看次数

从@ Html.ActionLink MVC 4将参数传递给控制器

在这一行:

@Html.ActionLink("Reply", "BlogReplyCommentAdd", "Blog",
         new { blogPostId = blogPostId, replyblogPostmodel = Model,
         captchaValid = Model.AddNewComment.DisplayCaptcha })
Run Code Online (Sandbox Code Playgroud)

我在blogPostId上遇到以下运行时错误:

参数字典包含参数'blogPostId'的非可空类型'System.Int32'的空条目,用于方法'System.Web.Mvc.ActionResult BlogReplyCommentAdd(Int32,Nop.Web.Models.Blogs.BlogPostModel,Boolean)'in 'Nop.Web.Controllers.BlogController'.可选参数必须是引用类型,可空类型,或者声明为可选参数.参数名称:参数

我已经为此分配了一个值,例如

    @{         
        var blogPostId = Model.Id;          
     }
Run Code Online (Sandbox Code Playgroud)

我的控制器:

 public ActionResult BlogReplyCommentAdd(int blogPostId, BlogPostModel model, bool captchaValid)
    {}
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?请举个例子.

razor asp.net-mvc-4

100
推荐指数
3
解决办法
30万
查看次数

表单提交时,Jquery函数BEFORE

我试图在单击表单提交按钮时使用Jquery触发一个函数,但该函数需要在实际提交表单之前触发.

我试图在提交时将一些div标签属性复制到隐藏文本字段中,然后提交表单.

我已设法使用鼠标悬停功能(当提交按钮悬停时)使其工作,但这不适用于使用触摸的移动设备.

$("#create-card-process.design #submit").on("mouseover", function () {
    var textStyleCSS = $("#cover-text").attr('style');
    var textbackgroundCSS = $("#cover-text-wrapper").attr('style');
    $("#cover_text_css").val(textStyleCSS);
    $("#cover_text_background_css").val(textbackgroundCSS);
});
Run Code Online (Sandbox Code Playgroud)

我使用.submit函数,但是这些值不会保存在字段中,因为函数在提交表单时触发,而不是之前触发.

非常感谢

forms jquery form-submit

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

SOLID原则真的很扎实吗?

这个缩写词中第一个字母的设计模式是单一责任原则.这是一个引用:

单一责任原则规定每个对象应该承担单一责任,并且该责任应该由班级完全封装.

在我们开始编码之前,这很简单明了.假设我们有一个具有明确定义的单一责任的类.要序列化类实例,我们需要为该类添加特殊的属性.所以现在班上有另一个责任.这不违反SRP吗?

让我们看另一个例子 - 接口实现.当我们实现接口时,我们只需添加其他职责,比如处理其资源或比较其实例或其他任何内容.

所以我的问题.是否有可能严格遵守SRP?怎么做到呢?

.net c# design-patterns solid-principles

39
推荐指数
5
解决办法
5862
查看次数

获取最大元素的索引

给出这样一个清单:

        List<int> intList = new List<int>();
        intList.Add(5);
        intList.Add(10);
        intList.Add(15);
        intList.Add(46);
Run Code Online (Sandbox Code Playgroud)

你如何获得列表中最大元素的索引?在这种情况下,它在索引3处.

编辑:遗憾的是标准LINQ没有提供这些功能.

c# linq

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

Stroustrup的RAII和演员操作符FILE*()=矛盾?

我正在阅读Stroustrup的C++(3ed,1997),看看他是如何实现RAII的,在第365页我发现了这个:

class File_ptr{
    FILE* p;
public:
    File_ptr(const char* n, const char* a){p = fopen(n, a);}
    File_ptr(FILE* pp) { p = pp; }
    ~File_ptr() {fclose(p);}
    operator FILE* () {return p;}
};
Run Code Online (Sandbox Code Playgroud)

构造函数和析构函数的实现是显而易见的,并且符合RAII惯用法,但我不明白他为什么使用它operator FILE* () {return p;}.

这将导致以File_ptr下列方式使用:

FILE* p = File_ptr("myfile.txt", "r");
Run Code Online (Sandbox Code Playgroud)

结果是封闭的p,在这种情况下在语义上是不合适的.此外,如果File_ptr要用作RAII,则此运算符允许它像示例中那样被滥用.或者我错过了什么?

c++ pointers raii

20
推荐指数
2
解决办法
1372
查看次数

错误:不推荐使用PersistenceProvider,使用HibernatePersistenceProvider而不是HibernatePersistence

我认为对于像我这样的所有初学者来说这是一个非常普遍的问题.但我找不到解决方案.然而.

文件persistence.xml位于src/META-INF/persistence.xml中

<?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
    http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">

    <persistence-unit name="jobs">

    <!-- provedor/implementacao do JPA -->
    <provider>org.hibernate.ejb.HibernatePersistenceProvider</provider>

    <!-- entidade mapeada -->
    <class>
        br.com.caelum.tarefas.modelo.Job
    </class>

    <properties>
        <!-- dados da conexao -->
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/fj21" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.password" value="root" />

        <!-- propriedades do hibernate -->
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.format_sql" value="true" />

        <!-- atualiza o banco, gera as tabelas se for preciso -->
        <property name="hibernate.hbm2ddl.auto" value="update" /> …
Run Code Online (Sandbox Code Playgroud)

java hibernate

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

等待信号

我正在开发一个将文件内容上传到服务器的应用程序.

要将文件上传到服务器,我使用的是"QNetworkAccessManager"类.由于它以异步方式工作,我通过使用QEventLoop将其更改为以同步方式工作.

Class FileTransfer
{
Public : 
     QNetworkAccessManager mNetworkManager;
     Void Upload(QNetworkRequest request, QIODevice *data)
     {
           responce = mNetworkManager.put(request, data);
           EventLoop.exec();
           ReadResponce(responce);
      }

      Void Stop()
      {
            responce ->close();
      }
}
Run Code Online (Sandbox Code Playgroud)

在我的示例应用程序中,我有2个窗口.第一个选择文件,第二个显示进度.

当用户在第一个窗口中单击上传按钮时,将显示第二个窗口,然后我创建FileTransfer对象并开始上传.

当用户关闭表单时上传文件,然后在窗口的析构函数中,我调用" FileTransfer " 的停止,然后删除' FileTransfer '对象.

但是这里的Upload()函数还没有完成,所以它会崩溃.

请帮助我:如何等待'stop() '函数,直到Upload()函数完成

qt signals signals-slots qt-signals

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

文件结尾NullPointerException

我想要的是EOF通过从控制台读取命令行键入Ctrl+ 来达到.以下代码执行此操作.但问题是,它在达成后发出.有没有办法跳过这个例外?或者更准确地说,什么是达到适当的方式与从控制台读取?zBufferedReaderNullPointerExceptionEOFEOFBufferedReader

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class EOF {

    public static void main(String args[]) {
        String s = "";
        String EOF = "^z";
        BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
        try {
            while (!s.equals(EOF)) {
                s = read.readLine();   
            }
        } catch (IOException e) {} 
    }

}
Run Code Online (Sandbox Code Playgroud)

java nullpointerexception eof bufferedreader

10
推荐指数
1
解决办法
1418
查看次数

@Transient注释对方法意味着什么?

所以我已经了解到transientJava 中的关键字意味着实体不会持久存在,并且@TransientJPA 中的注释意味着不会将字段持久保存到数据库中.但是,当@Transient应用于方法而不是变量时,它意味着什么?

这是我在代码中找到它的地方:

@Transient
public boolean getTabFoo() {
    if ((this.viewFoo1 != ACCESS_NONE)
            || (this.viewFoo2 != ACCESS_NONE) || (this.viewFoo3 != ACCESS_NONE)
            || (this.getViewFoo4() != ACCESS_NONE)) {
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

annotations jpa transient java-ee

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