问题列表 - 第19493页

Java bean,注释:它们做什么?他们如何帮助我?

这是我到目前为止所理解的:

Java bean只是为了帮助其他事物(视觉事物?)与您的代码进行交互.我认为这主要是针对UI的东西,因为它更容易在视觉上进行设计.将Java bean用于非UI事物是不好的做法吗?

Java bean具有getter和setter方法(糟糕的OOP实践)并且是可序列化的.

在注释方面,我认为用户定义的注释不提供任何功能.某些注释如@depretiated会引发编译器警告.用户定义的注释可以以某种方式执行此操作吗?用户定义的注释是否适用于除文档之外的任何其他内容?我该如何使用它们?eclipse或intellij是否有一些涉及注释的功能?

周末愉快.

可靠的人

更新:这开始变得更有意义.有人可以向我推荐一个例子,说明何时使用java bean格式是合适的,何时不适用?

我还读到某个地方,几个类可以是一个bean,它是一种打包类的方式.

只是为了澄清一件事.我95%肯定作为一个java bean有点像单身(或其他模式).它不会影响编译器的功能.

java annotations design-patterns javabeans

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

Javascript中的模糊函数声明

我是Javascript的新手,并对函数声明的工作方式感到困惑.我对此做了一些测试并得到了一些有趣的结果:

say();

function say()
{
    alert("say");
}
Run Code Online (Sandbox Code Playgroud)

前进声明工作和弹出"说"

相反

say();

say = function()
{
    alert("say");
}
Run Code Online (Sandbox Code Playgroud)

没有工作,虽然它也声明了一个函数对象

如果我们声明该函数并在之后重新声明:

function say()
{
    alert("speak");
}

say();

function say()
{
    alert("say");
}
Run Code Online (Sandbox Code Playgroud)

我得到"说"而不是"说话".这太令人惊讶了!

好.似乎只有最新的函数声明才有效.然后让我们首先声明函数对象,然后是"常规"函数:

say = function()
{
    alert("speak");
}

say();

function say()
{
    alert("say");
}

say();
Run Code Online (Sandbox Code Playgroud)

另一个惊喜,是"说话",然后是"说话"."常规"功能声明根本不起作用!

是否有所有这些的解释?并且,如果"常规"函数声明真的是"脆弱的"并且可以通过具有相同名称的函数对象轻松覆盖,那么我应该远离那个吗?

另一个问题是:只使用函数对象格式,前向声明是否变得不可能?有没有办法在Javascript中"模拟"它?

javascript declaration function forward-declaration

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

如何为新的C#类/接口编辑Visual Studio模板?

我发现自己在Visual Studio中创建的几乎每个C#文件中都删除了以下import语句:

using System.Collections.Generic;
using System.Linq;
using System.Text;
Run Code Online (Sandbox Code Playgroud)

当然,使用Resharper很容易做到这一点,但我真的不应该这样做.

在VS目录中必须有一些模板(类,接口),我可以从中删除有问题的行.我在哪里可以找到这些文件?有没有更好的方法来控制默认导入列表?

c# templates visual-studio

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

OUTER JOIN 使用 IN 列表?

我想仅使用项目列表来查找表中的命中和未命中,而不必创建新表来包含列表项并且不使用任何脚本。我一整天都在做很多临时查询,所以这很有用。

这是我现在使用的示例:

SELECT custid, name, email  
FROM customers  
WHERE custid IN  
('1111', '2222', '3333', '4444')  
Run Code Online (Sandbox Code Playgroud)

这将返回客户表中的所有条目,其中客户 ID 与我提供的列表中的条目相匹配。

我想找到一种方法来返回像 OUTER JOIN 这样的结果,在那里我可以看到匹配和未命中。

仅供参考:我正在使用 MS SQL Server,但能够在 mySQL 中执行此操作也很有用。谢谢!

sql sql-server

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

在WPF CAL MVVM中初始化模型和视图的正确方法是什么

我有两种方法来初始化WPF CAL MVVM中的Views和ViewModel.

1 - 似乎更受欢迎.需要您解析ViewModel以自动解析View.ViewModel包含有关View的信息.

    public interface IView
    {
        void SetModel(IViewModel model);
    }

    public interface IViewModel
    {
        IView View { get; }
    }

    public class View
    {
        public void SetModel(IViewModel model)
        {
            this.DataContext = model;
        }
    }

    public class ViewModel
    {
        private IView view;

        public ViewModel(IView view)
        {
            this.view = view;
        }

        public IView View { return this.view; }
    }
Run Code Online (Sandbox Code Playgroud)

2 - 看起来更清洁,并从ViewModel中删除View.需要您解析视图以自动解析ViewModel.将对象注入视图(不确定这是否合适).

    public interface IView
    {
    }

    public interface IViewModel
    {
    }

    public class View
    {
        private IViewModel …
Run Code Online (Sandbox Code Playgroud)

wpf prism unity-container mvvm viewmodel

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

如何在Grails/Groovy中以一对多关系清除和替换集合

这个问题分为两部分,第一部分是关于清除列表,第二部分是关于将所有者分配给一个对象.

我在Grails的模型中有两个域对象之间的一对多关系.这种关系看起来像这样......

class Person {

    static hasMany = [authorities: Role, locations: Location]
}

class Location {

    static belongsTo = Person

}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,locations列表Person完全刷新并替换为用户操作的新列表.更重要的是,我得到的Location对象列表独立于关联对象Person.我通过检索当前登录的用户来解析应用它们的人,我打电话给他activePerson并且对我来说没问题.

我想要做的是删除所有现有位置activePerson并插入所有新位置,并将它们与activePerson我一起关联.我有一堆属性Person,我不想在这一点上坚持,所以我想避免保存整个父对象,因为孩子们已经改变了位置.

我想到迭代遍历activePerson.locations列表并逐个删除它们并依赖GORM/Hibernate将查询批处理并最后刷新.这似乎是蛮力,虽然它可能有用.我期待有一种clearLocations方法或类似的东西,但我找不到一个.

如果我只是用activePerson.locations新列表替换并调用activePerson.save(flush:true),GORM会处理删除现有行吗?

其次,我想把新Location对象放到上面activePerson.我可以再填充activePerson.locations并保存整个事情,但如果可以,我想避免这样做.我可以单独保存它们,但是如何belongsToLocation我去的时候设置每个对象?

所以回顾一下:

  1. 如何在一对多集合的多端清除列表?
  2. 如何将独立对象与父对象关联并单独保留它们?

谢谢

grails grails-orm

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

Div的并排可变宽度Div可滚动

我希望有两个div并排,左边一个固定,右边一个填充屏幕的其余部分.但是,当右侧div包含超出其可用宽度的内容时,右侧div不应低于左侧Div但可以滚动.也就是说,两个Div保持并排,右边Div有一个滚动条.

在右侧div上设置宽度%显示我正在追求但正确的Div从不填充剩余空间,就像你需要将正确的Div宽度设置为100% - leftDiv.width ...

这就是我所拥有的.

谢谢

<style type="text/css">
#leftDiv{
    width: 200px;
    float: left;
} 

#rightDiv{
    float: left;
    overflow: auto;
    /* width: 50%; */
}
</style>

<div id="leftDiv">
    Left side bar
</div>
<div id="rightDiv">
    Some_really_long_content_which_should_make_this_Div_scroll
</div>
Run Code Online (Sandbox Code Playgroud)

编辑

我可以通过一些像这样的jQuery获得我想要的效果,但我更喜欢只有css的解决方案.

$(window).bind('resize', function () {
    $('#rightDiv').width($(this).width() - 220 );

}); 
Run Code Online (Sandbox Code Playgroud)

html css

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

适用于Java中事件侦听器的集合类

相关: java是否有"LinkedConcurrentHashMap"数据结构?


我正在寻找一个集合类来保存对事件监听器的引用.

理想情况下,我希望该集合具有以下属性(按优先级顺序):

  1. 维护广告订单.较早的侦听器可能会取消该事件,从而阻止它被传递给稍后添加的侦听器.如果使用诸如HashSet迭代器可能以错误的顺序返回元素的类,这将会中断.
  2. 使用WeakReferences使得侦听器列表不会阻止侦听器被垃圾收集.
  3. 该集合是a Set,因此会自动删除重复项.
  4. Iterator是集合的线程安全快照,不受添加新侦听器的影响.还允许在多个线程上传递事件.(这不是必需的 - 我可以迭代一下该集的克隆.)

我知道有些类满足一些但不是所有这些标准.例子:

  • java.util.LinkedHashSet (#1和#3)
  • java.util.WeakHashMap,包裹着Collections.newSetFromMap(#2和#3)
  • javax.swing.event.EventListenerList (需要一些额外的同步)(#1和#4)
  • java.util.concurrent.CopyOnWriteArraySet (#1,#3和#4)

但#1和#2都没有.这样的类是否存在于某个库中?

java collections concurrency weak-references event-listener

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

Javascript友好的预处理器困境

我已经在一个(差不多完成的)Javascript项目上工作了14个多月了.该项目最初是我希望在一夜之间完成的黑客攻击,但随着时间的推移,Javascript部分已经成长为68个独立文件和10,314个非空行,遗憾的是目前依赖于C预处理器进行构建.

很难解释我最终是如何使用cpp来实现Javascript的:这只是一个黑客,我需要的东西能给我宏扩展,ifdef,define,并且不需要太多努力.经过大约3秒钟的考虑,我意识到cpp对于任务是"完美的":

  • 提供在发布模式下消失的LOG()宏.
  • 提供在发布模式下消失的ASSERT()宏,并生成标记有原始文件和行号的异常.
  • 交换LOG()和代码ASSERT()实现,其允许产生"选中"构建,因为它们发生,如果发生碰撞被报告回服务器,其记录事件在一个紧凑的形式.
  • 用"1"替换PROJECT_SOME_CONFIG_VAR_NAME,基于与所述的Python后端共享的配置文件.

像所有真正的黑客,这个破解是现在这么硬编码到,我真的恨也别想将需要更换的工作项目.我的项目是达到我想要的代码库迁移到自己的专用测试服务器(而不是我的笔记本电脑),但是在建立一个Linux实例,我发现舞台是GNU CPP版本4.1不再预处理后的Javascript与崩溃一起出错.

我认为现在是真正解决这个问题的好时机,而不是将特定版本的GCC添加到构建要求列表中.但问题是,我找不到具有与cpp相同功能和特性的替换预处理器!我考虑过m4,但是m4本身就是一个痛苦的世界.我发现的其他特定于Javascript的预处理器缺少我目前所依赖的所有功能,例如:

  • __FILE__ & __LINE__
  • 变体宏
  • 包括警卫
  • 令牌连接
  • 条件编译

我正在认真考虑为Javascript实现一个全新的预处理器,它完全借用了C预处理器语法,因为它运行得很好.我只是想知道在这之前是否有更好的选择.:)也许已经有一个类似cpp的通用预处理器我可以交换?替换这68个文件中的所有预处理器语法所需的工作接近简单地重新实现预处理器所需的工作量.

到目前为止,依靠C预处理器,我感到非常惊讶; 在这项任务中,它比健康的心灵理解更有效.另一个对我开放的选择是为Linux,Darwin-i386,Win32静态构建cpp-4.1版本,并将这些二进制文件存储在项目的存储库中.

救命!

javascript preprocessor c-preprocessor

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

如何在SQL Server上的CASE WHEN中选择多个列?

我已广泛搜索此网站但无法找到解决方案.

以下是我的查询示例:

SELECT 
   ActivityID,

   Hours = (CASE 
                WHEN ActivityTypeID <> 2 THEN
                     FieldName = (Some Aggregate Sub Query),
                     FieldName2 = (Some other aggregate sub query)
                WHEN ActivityTypeID = 2 THEN
                     FieldName = (Some Aggregate Sub Query with diff result),
                     FieldName2 = (Some Other Aggregate Sub Query with diff result)
           END)
Run Code Online (Sandbox Code Playgroud)

显然我遗漏了很多查询,我只想看看是否可能.

我知道我可能只做两次"CASE",但我想我会问......

sql-server select case-when

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