小编cas*_*One的帖子

Java数组二进制搜索对象与另一个类中的比较器

我在编程时仍然非常环保,并且遇到了Java中数组上二进制搜索语法的问题.我试图调用存在于从我使用二进制搜索类单独的一类比较方法(重载"比较"方法).本质上我的目标是搜索数组存储在只有一个变量构成数组的对象.没有比较器,我没有成功这样做,因为我创建了一个"虚拟"对象,只保留搜索所需的标准作为密钥.

这是我的二进制搜索代码:

Song searchSong = new Song(artistInput, artistInput, artistInput);
int search = Arrays.binarySearch(songs, searchSong, new compare<Song>());
Run Code Online (Sandbox Code Playgroud)

这是我的重载比较器的代码,同样在一个单独的类中:

public int compare (Song firstSong, Song secondSong) {
  return firstSong.getArtist().compareTo(secondSong.getArtist());
}
Run Code Online (Sandbox Code Playgroud)

我确信这只是一件我想念的简单事,但我还没有找到答案.我感谢任何帮助,如果需要更多细节,请告诉我.我知道二进制搜索的代码不能用它的当前形式.

java arrays binary search

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

SQL Server:获取"无效的列名"

我正在写一个查询,但有一些我找不到的问题.这是我的代码

begin
    declare @v_max int
    declare @v_count int
    declare @sessionID int
    declare @sessionStart datetime
    declare @sessionEnd datetime

    declare my_cursor cursor local for
        select * from Test;

    open my_cursor
    fetch next from my_cursor INTO @sessionID, @sessionStart, @sessionEnd

    while @@FETCH_STATUS = 0
    begin
        select *  into **@v_count**
        from [dbo].[Test]
        WHERE **[dbo].[Test].[SessionStartTime]** > @sessionStart
        OR **[dbo].[Test].[SessionCloseTime]** < @sessionEnd

        if @v_count > @v_max 
            set @v_max = @v_count


        fetch next from my_cursor INTO @sessionID, @sessionStart, @sessionEnd
    end

    print @v_max;

    close my_cursor
    deallocate my_cursor
end 
Run Code Online (Sandbox Code Playgroud)

粗糙区域存在问题: …

t-sql sql-server

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

javascript文档中的javascript和css,最佳实践?

我需要为我正在使用的框架实现javascript和css资源,但我有一个很大的担忧.

如果您查看当前的网站,如Facebook,Google,Youtube和其他顶级网站,他们的源代码会在代码的各个位置显示他们对javascript的使用.我想到的第一个问题是......不应该在文档开头分配javascript源文件吗?您可以/应该能够将javascript命令放在脚本块中,但是......源文件也是如此?

我一直在阅读的书籍(作为最佳实践,我猜)所有源文件都应该在head部分中分配,同时在关闭body部分之前将所有代码块替换到页面的末尾(如果可能的话).

同样适用于CSS.我已经看到页面在页面中间找到源文件包含的页面,而正常的声明是在开头包含所有css文件(因为它比并行包含更有效,因为它们并行加载办法).

在我的想法中,如果我要按照我一直在阅读的书籍,源文件(包括javascript和css)总是在顶部,脚本块(如果可能的话)转到文档的底部,CSS包含是要在适当的位置避免(除非你想使用scope属性或者它是html标签内的样式声明,在可能的情况下也应该避免).

是对的吗?

javascript css html5 include

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

IDictionary`2不能从IDictionary转发?

我有一个ViewModel类型的属性IDictionary<string, string>.我将浏览该属性列表ViewModel并使用反射来确定它是否是字典.

目前我有:

if (typeof(IDictionary).IsAssignableFrom(propDescriptor.PropertyType))
Run Code Online (Sandbox Code Playgroud)

然而,这始终是假的,因为propDescriptor.PropertyTypeIDictionary`2.任何想法我怎么能让它工作?另外,为什么这不起作用?


我只是将我的属性更改为IDictionary而不是IDictionary.

编辑:不知道我的泛型去了哪里,但上面句子中的第二个IDictionary有字符串,字符串.

c# dictionary

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

Java Atomicity和一个很好的Compare和Swap框架?

你们认为这是一个很好的原子操作通用框架吗?您是否也认为对于Java应用程序而言,单个字节代码是原子的,因为使用单个JVM无法一次执行多个字节代码?所以,如果if else有一个单字节代码,那么这个if else指令是原子的吗?

// CAS, Compare and Swap
public abstract class CASOperation<T> {

protected T valueAtStart;

public CASOperation(){
    valueAtStart = objectToReview();
}

public void exec(){
    synchronized(this){
        while(!valueAtStartEqualsTheCurrent()){
            valueAtStart = objectToReview();
        }
        execImp();
    }
}

private boolean valueAtStartEqualsTheCurrent() {
    if (objectToReview().equals(valueAtStart)){
        return true;
    } else {
        return false;
    }
}

abstract protected T objectToReview();

abstract protected void execImp();
Run Code Online (Sandbox Code Playgroud)

它本质上是一个比较和执行框架,因此在检查原始捕捉值没有改变之后,我们执行一些代码块.

java bytecode atomic atomicity

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

字典中对象的默认值

我有一个字典设置如下: Dictionary <string, ItemProperties>

ItemProperties对象看起来像这样(基类是抽象的):

public class StringProperty : ItemProperty
{
    public string RawProp { get; set; }
    public string RenderedProp { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法像这样获取RenderedProp值(假设字典变量被称为属性):

string value = Properties[keyname];
Run Code Online (Sandbox Code Playgroud)

string value = Properties[keyname].RenderedProp;
Run Code Online (Sandbox Code Playgroud)

.net c# dictionary

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

第三方IM API的合法性

编写实现MSN Messener,Yahoo!的即时消息软件是否合法?Messener或AIM协议并通过广告获得收益?

instant-message

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

阅读MSDTC配置

有没有人对如何在当前机器上读取MSDTC配置有任何想法?我特意试图检查用户是否已执行以下步骤:

  1. 打开组件管理(开始>所有程序>管理工具>组件服务)

  2. 双击"组件服务",然后展开"计算机".右键单击"我的电脑",然后选择"属性"

  3. 在MSDTC选项卡上,单击"安全配置"按钮,然后按如下方式配置属性:

  4. 网络DTC访问:已检查

  5. 允许远程客户端:已选中

  6. 允许入站:已选中

  7. 允许出站:已检查

  8. 需要传入呼叫者身份验证:已选中

它是我需要编写的一个小组件的一部分,用于验证最终用户配置.如果错误的话,我认为我不会尝试修复它:只需将用户指向帮助文件 - 因此只需要只读.

c# configuration msdtc

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

Java不继承访问器方法?

给定一个类"Bar",扩展类"Foo",实现接口"DeeDum"

public interface DeeDum {
    public String getDee();
    public String getDum();
}

public class Foo implements DeeDum {
    public String dee = "D";
    public String dum;

    public String getDee() { return dee; }
    public String getDum() { return dum; }
}

public class Bar extends Foo {
    public String dee = "DEE";
    public String dum = "DUM";
}
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

public static Bar mybar = new Bar();
Assert.assertEquals("DEE", mybar.getDee());
Assert.assertEquals("DUM", mybar.getDum());
Run Code Online (Sandbox Code Playgroud)

我得到"D"而无效.换句话说,Bar不会从Foo继承访问器,也不能覆盖属性.以某种方式调用mybar.getDum()调用类Foo的静态实例并从父类返回静态属性.即使在子类中重写属性!这是否意味着您不能继承任何方法或属性?

我无法绕过它.为什么Java不能继承访问者(为什么他们选择这样一个奇怪的选择呢?)

或者我只是做错了什么?


实际上,我仍然看到一些奇怪而不确定的东西.如果你有另一个类'Bar'扩展Foo并在初始化块中设置继承的访问器

虽然您可以在上面的块中设置父属性,但它实际上并不为子类创建副本.

它似乎是多个类的非确定性初始化.

因此,如果你有扩展foo和初始化块的Bar和Baz,它们似乎都继承了Bar设置的值.

public …
Run Code Online (Sandbox Code Playgroud)

java inheritance

0
推荐指数
3
解决办法
1397
查看次数

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