问题列表 - 第19074页

Java:找出*为什么*加载一个类

我目前遇到的问题是我有一个(部分)程序试图加载一个类但失败,因为它找不到这个类.查看堆栈跟踪,我看不出任何特定原因导致 VM首先尝试加载此特定类.是否有任何工具可以让我弄清楚为什么要加载特定的类?

提示:我已经在JVM尝试加载类(通过代理)的确切位置获取堆栈跟踪.但是,堆栈跟踪不包含行号.因此我只知道哪个方法触发了正在加载的类,而不是哪个语句.然后,即使知道该陈述可能还不够.单个语句可以导致以多种方式加载类,因为有时VM需要加载类的传递闭包的一部分.

java jvm

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

VS.NET:项目参考与大会参考

这里有一些争论,哪个更适合从其他项目引用我们的公共代码库:通过项目或汇编.我赞成引用该项目,特别是因为我们有自动化的单元测试,证明公共代码能够满足它的需要.

另一个阵营的想法是锁定那些项目,每月只发布一次或类似的东西.然后强制所有项目引用程序集.他们认为这将保护他们免于部署未经测试的代码.他们"太忙"无法编写自动化单元测试并将其项目配置为持续集成,我对此没有任何影响,所以请不要关注这方面.

这就是我能想到为什么项目参考是更好的解决方案的原因.我也在寻找其他意见.

优点:

  • 引用项目可确保您使用最新代码.你不必等待任何事情.
  • 减少重复.没有最新的代码,重新发明轮子的可能性更大.
  • 如果开发人员需要某些东西并且无法将其添加到它所属的程序集中,那么它将在任何可行的位置创建,从而产生许多不一致和代码重复.
  • 开发更容易,因为您可以轻松查看/调试引用代码中发生的情况.
  • 我们常见的东西并没有经常改变,但是当它发生时,它通常是有用的东西.为什么要增加额外的维护和汇编发布管理负担.

缺点:

  • 可能需要更长时间才能加载.
  • 将项目添加到新解决方案然后添加程序集引用可能需要稍长时间.

.net assemblies reference project visual-studio

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

为什么ConfigurationManager.OpenMappedExeConfiguration有一个不在文件中的额外连接字符串?

我正在测试我的配置文件以获取win表单应用程序.在LocalTestRun.testrunco​​nfig中,我将其设置为复制app.config.我已经检查了Environment.CurrentDirectory测试运行的时间,文件也没有这个额外的连接字符串.这是测试方法:

[TestMethod]
    public void Configuration_ConnectionStrings_Connect()
    {
        Console.WriteLine(Environment.CurrentDirectory);
        Assert.IsTrue(System.IO.File.Exists("App.Config"));
        var configFileMap = new ExeConfigurationFileMap(){ ExeConfigFilename = "App.Config"};

      var config=  ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);

       foreach (ConnectionStringSettings connectionString in config.ConnectionStrings.ConnectionStrings)
        {
           //Assumes all connections are to Sql server, test must be updated if not
            Assert.AreEqual("System.Data.SqlClient",connectionString.ProviderName,"Test was only designed for SQL clients");
         using (var cn=new System.Data.SqlClient.SqlConnection(connectionString.ConnectionString))
         {
             cn.Open();
             Assert.AreEqual(System.Data.ConnectionState.Open,cn.State);
         }
        }

    }
Run Code Online (Sandbox Code Playgroud)

但是,当我迭代时,config.ConnectionStrings.ConnectionStrings我有一个不在文件中的额外配置字符串:

data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true
Run Code Online (Sandbox Code Playgroud)

这不是,也从来不是一个asp.net项目.

这是配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing configurationmanager app-config

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

在TabBarController之前加载欢迎屏幕(启动画面)

在我的基于TabBar的iPhone应用程序中,我想在实际应用程序加载之前显示全屏欢迎页面(带有一些日志),如何从xib文件加载UIView作为欢迎屏幕,然后从那里我可以加载我的TabBar基础申请.

iphone uiviewcontroller ios

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

在C中将文本文件读入缓冲区的正确方法?

我正在处理我希望在处理它们时读入缓冲区的小文本文件,所以我想出了以下代码:

...
char source[1000000];

FILE *fp = fopen("TheFile.txt", "r");
if(fp != NULL)
{
    while((symbol = getc(fp)) != EOF)
    {
        strcat(source, &symbol);
    }
    fclose(fp);
}
...
Run Code Online (Sandbox Code Playgroud)

这是将文件内容放入缓冲区还是滥用的正确方法strcat()

然后我遍历缓冲区:

for(int x = 0; (c = source[x]) != '\0'; x++)
{
    //Process chars
}
Run Code Online (Sandbox Code Playgroud)

c buffer input

24
推荐指数
3
解决办法
8万
查看次数

在Java中运行x秒的代码?

我想写一个java while循环,它将迭代15秒.我认为这样做的一种方法是存储当前系统时间+ 15秒,然后将其与while循环签名中的当前时间进行比较.

有没有更好的办法?

java time while-loop

25
推荐指数
3
解决办法
6万
查看次数

将MemoryStream包装在一个使用中

我已经告诉System.IO.MemoryStream不必在被包装使用的块,因为没有基本的资源,这有点违背我一直都告诉流("如有疑问,请使用使用 ") .

这是真的?为什么MSDN示例使用一个(总结如下)?

using(MemoryStream memStream = new MemoryStream(100))
{
            // do stuff
}
Run Code Online (Sandbox Code Playgroud)

.net c# stream

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

为什么这段代码片段会被编译?

为什么以下代码编译?

#include <stdio.h>

int main(void) {
    getchar;
}
Run Code Online (Sandbox Code Playgroud)

c

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

为什么NHibernate首先插入然后更新集合的元素?

我不确定这是正确的行为还是我身边的错误:

我有一个非常简单的亲子关系

public class SubmittedBatch
{
    public virtual Guid Id { get; set; }
    public virtual IList<SubmittedBatchParameter> Parameters { get; private set; }
}

public class SubmittedBatchParameter
{
    public virtual string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

并使用FluentNH配置如下:

mapping.HasMany<SubmittedBatchParameter>(sb => sb.Parameters).Cascade.All();
Run Code Online (Sandbox Code Playgroud)

我做了一些简单的事情,比如在Parameters集合中添加一个新元素,然后调用SaveOrUpdate父元素.

查看SQL语句的跟踪,我得到一个插入:

INSERT INTO [SubmittedBatchParameter]
           (Value)
VALUES     ('Disabled' /* @p0 */)
select SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)

然后更新:

UPDATE [SubmittedBatchParameter]
SET    SubmittedBatch_id = '209971b7-c311-46bd-b989-9cf80113654c' /* @p0_0 */
WHERE  Id = 39 /* @p1_0 */
Run Code Online (Sandbox Code Playgroud)

为什么NH只是在指定Guid的情况下进行插入?这是正确的,还是我做错了什么?

谢谢西蒙娜

sql nhibernate

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

Hashtable <String,Object>找不到字符串

我有一个Hashtable类型的Hashtable

我已经加载了几个字符串作为键,其中一个是"ABCD"

但是,稍后当我去查找"ABCD"时,Hashtable返回null而不是关联的对象.此外,密钥集包含"ABCD",但对containsKey("ABCD")的请求返回false.

这是因为String对象本质上是不同的对象吗?

如果是这样,如果我想使用字符串作为键,那么在Hashtable中存储信息的写入方式是什么?

 public class Field {
        private String name;
        private DataType dataType;

        public Field(String name, DataType dataType) {
            this.name = name;
            this.dataType = dataType;
        }

        public String getName() {
            return name;
        }

        public DataType getDataType() {
            return dataType;
        }

        public String toString() {
            return name;
        }
    }

public class Record {
        private Hashtable<String, Data> content; 

        public Record(Field[] fieldList) {
            this.fieldList = fieldList;     
            content = new Hashtable<String, Data>();

            System.out.println(fieldList.length);

            for(Field f : fieldList) {          
                content.put(f.getName(), new Data());
            } …
Run Code Online (Sandbox Code Playgroud)

java string hashtable

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