javascript

git

python

java

git-remote

github

django

c#

reactjs

c++

validation

email-validation

undefined

scrum

kubernetes

ruby-on-rails

.net

.net-framework-version

operators

git-fetch

在Java中,可以从构造函数助手中初始化final字段吗?

我有一个最终的非静态成员:

private final HashMap<String,String> myMap;

我想使用构造函数调用的方法对其进行初始化。 由于myMap是最终版本,因此我的“ helper”方法无法直接对其进行初始化。 我当然有选择:

我可以直接在构造函数中实现myMap初始化代码。

MyConstructor (String someThingNecessary)
{
    myMap = new HashMap<String,String>();

    myMap.put("blah","blahblah");
    // etc...

    // other initialization stuff unrelated to myMap
}

我可以让我的助手方法构建HashMap,将其返回给构造函数,然后让构造函数将对象分配给myMap。

MyConstructor (String someThingNecessary)
{
    myMap = InitializeMyMap(someThingNecessary);

    // other initialization stuff unrelated to myMap
}

private HashMap<String,String> InitializeMyMap(String someThingNecessary)
{
    HashMap<String,String> initializedMap = new HashMap<String,String>();

    initializedMap.put("blah","blahblah");
    // etc...

    return initializedMap;
}

方法2很好,但是,我想知道是否有某种方法可以允许helper方法直接操作myMap。 也许表明它只能由构造函数调用的修饰符?

MyConstructor (String someThingNecessary)
{
    InitializeMyMap(someThingNecessary);

    // other initialization stuff unrelated to myMap
}


// helper doesn't work since it can't modify a final member
private void InitializeMyMap(String someThingNecessary)
{
    myMap = new HashMap<String,String>();

    myMap.put("blah","blahblah");
    // etc...
}
trans by 2020-08-11T00:35:22Z

java-未初始化的原始实例变量是否使用内存?

在Java中,声明类级实例变量而不初始化它会消耗内存吗?
例如:如果我不使用i = 5;初始化内存,则int i;是否使用任何内存?

细节:

我有一个巨大的超类,许多不同的子类(不足以拥有自己的超类)会扩展。 某些子类不会使用超类声明的每个原语。 我可以简单地将这些原语保留为未初始化状态,而仅在必要的子类中对其进行初始化以节省内存吗?

trans by 2020-08-06T04:52:44Z

C ++中的变量初始化

我的理解是int变量将自动初始化为0; 但是,事实并非如此。 下面的代码打印一个随机值。

int main () 
{   
    int a[10];
    int i;
    cout << i << endl;
    for(int i = 0; i < 10; i++)
        cout << a[i] << " ";
    return 0;
}
  • 什么规则适用于初始化?
  • 具体来说,在什么条件下变量会自动初始化?
trans by 2020-08-05T02:35:26Z

为什么在构造函数中修改const成员?

我很好奇为什么可以在构造函数中修改const成员。

初始化中是否有任何标准规则可以覆盖成员的“ const-ness”?

struct Bar {
    const int b = 5; // default member initialization
    Bar(int c):b(c) {}
};

Bar *b = new Bar(2); // Problem: Bar::b is modified to 2
                     // was expecting it to be an error

有任何想法吗?

trans by 2020-08-02T22:58:24Z

进行复制和直接初始化的行为背后的动机是什么?

与为什么要调用复制构造函数而不是转换构造函数有关?

初始化有两种语法:直接和复制初始化:

A a(b);
A a = b;

我想知道他们具有不同定义行为的动机。 对于副本初始化,会涉及一个额外的副本,并且我认为该副本没有任何用途。 由于它是临时副本,因此可以并且很可能会对其进行优化,因此用户不能依赖它的发生-因此,多余的副本本身不足以引起不同的行为。 所以为什么?

trans by 2020-08-02T05:16:13Z

C#-可以简化对象初始化

通过我的代码,我收到3条消息,全部说出object initialization can be simplified,并且在我对知识(和我的OCD)的日益增长的渴望中,我想“修复”我的代码,以使这些消息不出现。 我知道我可以对其进行设置,以使这些消息不会出现,但是我仍然会想到它们位于背景中,而这些背景并不适合我。 如果有人可以指出如何“简化初始化”,那将非常有用,这样我就可以提高自己的技能。 如果需要更多代码,请告诉我,我可以添加它。

第一

TreeNode node = new TreeNode(drive.Substring(0, 1), driveImage, driveImage);//issue on this line
node.Tag = drive;

第二名:

DirectoryInfo di = new DirectoryInfo(dir);
TreeNode node = new TreeNode(di.Name, 0, 1); //this line

我怀疑使用treenodes是因为我给了它们相同的名称,但是我尝试更改名称,但没有任何区别。

表演:

OleDbCommand select = new OleDbCommand();//this line
select.Connection = cnDTC;
select.CommandText = string.Format("SELECT MAX(VERSION_NO) AS MAX_VERSION FROM ({0})", strSQL2);
trans by 2020-07-30T14:26:55Z

STL映射是否在插入时初始化原始类型?

我有wstrPlayerName像这样:

map<wstring,int> Scores;

它存储玩家的姓名和分数。 当有人得到分数时,我会简单地做:

Scores[wstrPlayerName]++;

如果映射中没有带键2984473779591709709696的元素,它将创建一个,但是会在增量之前将其初始化为零或null还是未定义?

是否应该在每次递增之前测试元素是否存在?

我只是想知道,因为我认为原始类型的东西在创建时总是不确定的。

如果我写这样的话:

int i;
i++;

编译器警告我未定义,并且在我运行程序时通常不为零。

trans by 2020-07-27T05:03:51Z

C ++-未初始化向量<int>的值

从这个问题的答案中我了解到,未初始化的int全局/静态值将为0。这个答案表明,对于向量,将调用对象类型的默认构造函数。

我无法弄清楚-在本地函数中有vector<int> v(10)时会发生什么。 int的默认构造函数是什么? 如果我在全球范围内声明了vector<int> v(10),该怎么办?

我看到的是,本地函数中的vector<int> v(10)导致变量为0-但我不确定这是仅由于我的编译器还是固定的预期行为。

trans by 2020-07-26T22:38:19Z

javascript-帮助理解jQuery的jQuery.fn.init为什么在fn中初始化

我一直在寻找jQuery,以更好地了解其工作原理。 构造函数基本上只是调用

new jQuery.fn.init

我想知道在jQuery原型中包含init有什么意义? 不会将jQuery.fn.init()定义为jQuery对象本身的一部分出于相同的目的吗?


基本上我想知道为什么jQuery的init函数位于jQuery.fn.init()而不是jQuery.init()

是否有人这样做:

jQuery('a').eq(0).hide().init('div').slideToggle(); //?
trans by 2020-07-19T11:04:26Z

初始化具有相同布尔值的列表

没有循环,是否有可能将所有列表值初始化为某个布尔值? 例如,我要列出所有False的N个元素。

trans by 2020-07-18T05:05:28Z

java-新的Class(...){{...}}初始化习惯用法的含义

这个问题已经在这里有了答案:

  • 什么是Java中的Double Brace初始化? 12个答案

以下代码中{{ ... }}块的含义是什么?

class X {

    private Y var1;

    private X() {
        Z context = new Z(new SystemThreadPool()) {{
            var1 = new Y();
        }};
    }

}
trans by 2020-07-18T03:29:27Z

数据库中的实体框架代码优先默认数据

如何处理启动应用程序之前或数据库生成后需要预先存在的数据的情况。 例如,我有一个在代码优先生成数据库后要加载到数据库中的国家/地区的列表。 我该怎么做呢?

应用程序的结构如下:

WebMVC

xml位于WebMVC项目中。

trans by 2020-07-09T08:54:10Z

swift-如何在协议扩展中定义初始化程序?

protocol Car {
     var wheels : Int { get set}

     init(wheels: Int)

}

extension Car {
    init(wheels: Int) {
        self.wheels = wheels
    }
}

在self.wheels =车轮上我得到了错误

Error: variable 'self' passed by reference before being initialized

如何在协议扩展中定义初始化程序?

trans by 2020-07-07T23:52:47Z

简单的方法来查找未初始化的成员变量

我正在寻找一种查找未初始化的类成员变量的简便方法。

在运行时或编译时找到它们是可以的。

目前,我在类构造函数中有一个断点,并逐一检查成员变量。

trans by 2020-07-05T08:56:48Z

一大堆十字架初始化

我从下载的示例中提取了以下代码片段:

bool ChatServer::event(QEvent * event)
{
    if(event->type() == QEvent::User)
    {
        UserEvent * ue = static_cast<UserEvent *>(event);
        switch(ue->userType)
        {
            case CR::ErrorEvent:
            case CR::LogEvent:
            {   
                TraceEvent * te = static_cast<TraceEvent *>(ue);
                if(te->userType == CR::ErrorEvent)
                {
                    error(te->msg);
                }
                else
                {
                    log(te->msg);
                }
            }
                break;
            default:
                return false;
        }
    }
    else
    {
        return QTcpServer::event(event);
    }
    return true;
}

现在,如果编译程序,则会出现以下错误:

g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4 -I. -I/usr/local/include/qt4 -I/usr/local/include -o chatserver.o chatserver.cpp
g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4 -I. -I/usr/local/include/qt4 -I/usr/local/include -o clientservice.o clientservice.cpp
clientservice.cpp: In member function 'virtual bool ClientService::event(QEvent*)':
clientservice.cpp:37: error: jump to case label
clientservice.cpp:34: error:   crosses initialization of 'MessageEvent* me'
clientservice.cpp:41: error: jump to case label
clientservice.cpp:38: error:   crosses initialization of 'UserInfoEvent* uie'
clientservice.cpp:34: error:   crosses initialization of 'MessageEvent* me'
clientservice.cpp:44: error: jump to case label
clientservice.cpp:38: error:   crosses initialization of 'UserInfoEvent* uie'
clientservice.cpp:34: error:   crosses initialization of 'MessageEvent* me'
clientservice.cpp:31: warning: enumeration value 'EventTypeBegin' not handled in switch
clientservice.cpp:31: warning: enumeration value 'LogEvent' not handled in switch
clientservice.cpp:31: warning: enumeration value 'ErrorEvent' not handled in switch
clientservice.cpp:31: warning: enumeration value 'ClientConnected' not handled in switch
clientservice.cpp:31: warning: enumeration value 'ClientReg' not handled in switch
clientservice.cpp:31: warning: enumeration value 'ClientDisconnect' not handled in switch
clientservice.cpp:31: warning: enumeration value 'ServerConnected' not handled in switch
clientservice.cpp:31: warning: enumeration value 'ServerDisconnect' not handled in switch
clientservice.cpp:31: warning: enumeration value 'DoConnect' not handled in switch
clientservice.cpp:31: warning: enumeration value 'DoDisconnect' not handled in switch
clientservice.cpp:31: warning: enumeration value 'GotMessage' not handled in switch
clientservice.cpp:31: warning: enumeration value 'GotUserInfo' not handled in switch
clientservice.cpp:31: warning: enumeration value 'SendUserInfo' not handled in switch
clientservice.cpp:31: warning: enumeration value 'GotClientInfo' not handled in switch
clientservice.cpp:31: warning: enumeration value 'SendClientInfo' not handled in switch
clientservice.cpp:31: warning: enumeration value 'EventTypeEnd' not handled in switch
clientservice.cpp: In member function 'void ClientService::readClient()':
clientservice.cpp:63: warning: comparison between signed and unsigned integer expressions
clientservice.cpp:87: error: jump to case label
clientservice.cpp:83: error:   crosses initialization of 'Message* msg'
clientservice.cpp:92: error: jump to case label
clientservice.cpp:88: error:   crosses initialization of 'UserInfo* ui'
clientservice.cpp:83: error:   crosses initialization of 'Message* msg'
clientservice.cpp:97: error: jump to case label
clientservice.cpp:93: error:   crosses initialization of 'ClientInfo* ci'
clientservice.cpp:88: error:   crosses initialization of 'UserInfo* ui'
clientservice.cpp:83: error:   crosses initialization of 'Message* msg'
clientservice.cpp: In member function 'bool ClientService::sendToClient(CR::MsgType::MsgType, SendAble*)':
clientservice.cpp:124: warning: comparison of unsigned expression < 0 is always false
clientservice.cpp: In member function 'void ClientService::gotUserInfo(UserInfo*)':
clientservice.cpp:176: error: cast from 'ClientService*' to 'quint32' loses precision
*** Error code 1

Stop in ~/SimpleChatRoomServer

现在,如果除去case陈述的括号,则会出现此错误:

g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4 -I. -I/usr/local/include/qt4 -I/usr/local/include -o chatserver.o chatserver.cpp
chatserver.cpp: In member function 'virtual bool ChatServer::event(QEvent*)':
chatserver.cpp:108: error: jump to case label
chatserver.cpp:98: error:   crosses initialization of 'TraceEvent* te'
chatserver.cpp:94: warning: enumeration value 'EventTypeBegin' not handled in switch
chatserver.cpp:94: warning: enumeration value 'ClientConnected' not handled in switch
chatserver.cpp:94: warning: enumeration value 'ClientReg' not handled in switch
chatserver.cpp:94: warning: enumeration value 'ClientDisconnect' not handled in switch
chatserver.cpp:94: warning: enumeration value 'ServerConnected' not handled in switch
chatserver.cpp:94: warning: enumeration value 'ServerDisconnect' not handled in switch
chatserver.cpp:94: warning: enumeration value 'DoConnect' not handled in switch
chatserver.cpp:94: warning: enumeration value 'DoDisconnect' not handled in switch
chatserver.cpp:94: warning: enumeration value 'GotMessage' not handled in switch
chatserver.cpp:94: warning: enumeration value 'SendMessage' not handled in switch
chatserver.cpp:94: warning: enumeration value 'GotUserInfo' not handled in switch
chatserver.cpp:94: warning: enumeration value 'SendUserInfo' not handled in switch
chatserver.cpp:94: warning: enumeration value 'GotClientInfo' not handled in switch
chatserver.cpp:94: warning: enumeration value 'SendClientInfo' not handled in switch
chatserver.cpp:94: warning: enumeration value 'EventTypeEnd' not handled in switch
*** Error code 1

Stop in ~/SimpleChatRoomServer.

完整的源代码293879438701651616608:

#include <QTextStream>
#include <QDateTime>
#include "traceevent.h"
#include "chatserver.h"
#include "chatcenterthread.h"
#include "clientservicethread.h"
#include "message.h"
#include "server.h"

ChatServer::ChatServer(QObject * parent)
        :QTcpServer(parent)
{
    QFile * inFile = new QFile(this);
    QFile * outFile = new QFile(this);
    QFile * errFile = new QFile(this);
    inFile->open(stdin,QIODevice::ReadOnly);
    outFile->open(stdout,QIODevice::WriteOnly);
    errFile->open(stderr,QIODevice::WriteOnly);
    setIO(inFile,outFile,errFile);

    qobject_cast<Server *>(qApp)->csrId = this;
    csrId = (QObject *)(0+CR::ServerId);
}

ChatServer::~ChatServer()
{
    for(int i = 0; i < ccs.size(); i++)
    {
        ccs.at(i)->deleteLater();
    }
}

void ChatServer::setIO(QFile * inFile,QFile * outFile,QFile * errFile)
{
    in.setDevice(inFile);
    out.setDevice(outFile);
    err.setDevice(errFile);
}

void ChatServer::incomingConnection(int socketId)
{
    ClientServiceThread *cst = new ClientServiceThread(socketId,this);
    cst->start();
    connect(cst,SIGNAL(finished()),cst,SLOT(deleteLater()));
}

bool ChatServer::init(quint16 & port)
{
    if(!port)
    {
        bool ok = false;
        while(!ok)
        {
            out<<tr("Port[5555]: ");
            out.flush();
            QString p;
            p = in.read(1);
            if(p!=QString("\n"))
            {
                QString strport;
                strport = in.readLine(10);
                strport = p + strport;
                port = strport.toUInt(&ok);
            }
            else
            {
                port = 5555;
                ok = true;
            }
        }
    }

    //ADD ONE ChatCenter
    ChatCenterThread * cct = new ChatCenterThread(this);
    cct->start();
    connect(cct,SIGNAL(finished()),cct,SLOT(deleteLater()));

    if(!listen(QHostAddress::Any,port))
    {
        error(tr("Listen at [%1] fail!").arg(port));
        deleteLater();
        exit(1);
        return false;
    }
    log(tr("Listen at [%1]").arg(port));
    return true;
}

bool ChatServer::event(QEvent * event)
{
    if(event->type() == QEvent::User)
    {
        UserEvent * ue = static_cast<UserEvent *>(event);
        switch(ue->userType)
        {
            case CR::ErrorEvent:
            case CR::LogEvent:
                TraceEvent * te = static_cast<TraceEvent *>(ue);
                if(te->userType == CR::ErrorEvent)
                {
                    error(te->msg);
                }
                else
                {
                    log(te->msg);
                }
                break;
            default:
                return false;
        }
    }
    else
    {
        return QTcpServer::event(event);
    }
    return true;
}

void ChatServer::error(QString msg)
{
    err<<QDateTime::currentDateTime().toString(Qt::ISODate)
            <<" !ERROR! "<<msg<<endl;
}

void ChatServer::log(QString msg)
{
    out<<QDateTime::currentDateTime().toString(Qt::ISODate)
            <<" "<<msg<<endl;
}

1)我是否使用了不正确的括号?

2)为什么在case语句中使用括号将crosses initialization显示为其他代码行。

trans by 2020-06-25T16:45:22Z

为什么使用初始化方法而不是构造函数?

我刚进入一家新公司,很多代码库都使用初始化方法而不是构造函数。

struct MyFancyClass : theUberClass
{
    MyFancyClass();
    ~MyFancyClass();
    resultType initMyFancyClass(fancyArgument arg1, classyArgument arg2, 
                                redundantArgument arg3=TODO);
    // several fancy methods...
};

他们告诉我,这与时间有关。 构造后必须做的一些事情会在构造函数中失败。 但是大多数构造函数是空的,我真的没有看到不使用构造函数的任何原因。

所以,我转向C ++的向导:您为什么要使用初始化方法而不是构造函数?

trans by 2020-06-25T09:39:18Z

CodeGo.net>如何初始化KeyValuePair对象的正确方法?

我已经(在其他问题中)看到这个问题,人们想知道如何初始化KeyValuePair实例,该实例应该看起来像这样。

KeyValuePair<int, int> keyValuePair = new KeyValuePair<int, int>
{ 
  Key = 1,
  Value = 2
};

它不起作用,就好像属性不存在一样。 Intead,我需要使用这样的构造函数。

KeyValuePair<int, int> keyValuePair = new KeyValuePair<int, int>(1, 2);

语法较短,但令我困扰的是我无法使用初始化程序。 我究竟做错了什么?

trans by 2020-06-24T16:27:26Z

ios-字符串的静态NSArray-在View Con中初始化的方式/位置

在一个主从应用程序中,我想显示一个带有5个标题的TableView:

  1. 你的举动
  2. 他们的举动
  3. 赢得比赛
  4. 输了的游戏
  5. 选件

因此,我在Xcode 5.0.2中创建了一个空白的Master-Detail应用,然后在其MasterViewController.m(这是一个UITableViewController)中,我试图实现该方法:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return _titles[section];
}

但是我的问题是如何初始化NSArray _titles?

我正在MasterViewController.m中尝试:

#import "MasterViewController.h"
#import "DetailViewController.h"

static NSArray *_titles_1 = @[
    @"Your Move",
    @"Their Move",
    @"Won Games",
    @"Lost Games",
    @"Options"
];

@interface MasterViewController () {
    NSMutableArray *_games;

    NSArray *_titles_2 = @[
                         @"Your Move",
                         @"Their Move",
                         @"Won Games",
                         @"Lost Games",
                         @"Options"
    ];
}
@end

@implementation MasterViewController

- (void)awakeFromNib
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        self.clearsSelectionOnViewWillAppear = NO;
        self.preferredContentSize = CGSizeMake(320.0, 600.0);
    }
    [super awakeFromNib];
}

- (void)viewDidLoad
{
     ....
}

但是以上两种尝试都给了我语法错误:

enter image description here

更新:

令我惊讶的是,对于这个简单的问题有很多建议,但是作为iOS / Objective-C新手,我不确定哪种解决方案最合适。

NSArray-是不是在多线程应用程序中执行一次操作的运行时操作? 难道不是这里太过分了吗? 我期待一个用于初始化const数组的编译时解决方案...

NSArray-当我的应用程序在背景和前景之间切换时,是否不必一次又一次地启动我的const数组?

我是否应该更好地将NSArray设置为awakeFromNib(因为我对所有ViewController都使用了转盘式场景)? 或者也许在initSomething中(正确的方法initWithStyle?)

trans by 2020-06-23T19:54:10Z

我应该将初始java字符串值从null设置为“”吗?

我经常有这样的课程:

public class Foo
{
private String field1;
private String field2;

// etc etc etc
}

这使field1和field2的初始值等于null。 最好让我的所有String类字段都如下所示?

public class Foo
{
private String field1 = "";
private String field2 = "";

// etc etc etc
}

然后,如果我与类定义保持一致,则可以避免很多空指针问题。 这种方法有什么问题?

trans by 2020-06-23T08:19:22Z

iOS-覆盖枚举init?(rawValue:String)不是选项

如果rawValue初始化将返回nil,我想在Swift中为我的枚举从rawValue进行初始化以返回默认值。现在我有这样的事情:

public init(fromRawValue: String){
        self = Language(rawValue: fromRawValue) ?? .English
}

我不喜欢这样,因为它是全新的初始化程序。我试图做这样的事情:

public init(rawValue: String){
        self = Language(rawValue: fromRawValue) ?? .English
}

但是我有访问错误的运行时异常。 我能以某种方式使其正常工作还是只需要使用这一新功能,而不能覆盖原来的功能而不是可选的?

我想知道是否有可能从rawValue覆盖原始的init,而不是使用有故障的全新方法来解决。

trans by 2020-06-20T04:53:50Z

1 2 3 4 5 6 7 8 下一页 共8页