问题列表 - 第33341页

C++和Java:使用虚拟基类

在比较C++和Java多重继承时,我有些疑惑.

  1. 即使Java通过接口使用多个多级继承 - 但为什么它不像C++那样使用虚拟基类之类的东西?是因为java接口的成员在内存中确保了一个副本(它们是公共静态final),并且这些方法只是声明而没有定义?

  2. 除了节省内存之外,C++中还有其他虚拟类的使用吗?如果我在多重继承程序中忘记使用此功能,是否有任何警告?

  3. 这个有点哲学 - 但为什么C++开发人员没有把它作为默认制作每个基类,虚拟?提供灵活性的需求是什么?

将举例说明.谢谢 !!

c++ java virtual

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

开源Web应用程序更容易被黑客攻击?

在最近的一次采访中,我被问到:

开源Web应用程序(比如建立在Struts/Spring上)更容易被黑客攻击,因为任何人都可以访问源代码并进行更改.你怎么防止它?

我的回答是:

java源代码不能直接访问.它被编译成类文件,然后将它们捆绑在war文件中,并部署在像Weblogic app server这样的安全容器中.应用服务器位于公司防火墙后面,无法直接访问.

那时候 - 我没有提到任何关于XSS和SQL注入的内容,它们会影响类似于开源的基于COTS的Web应用程序.

我的问题:

a)我对这个问题的回答是否正确?

b)我可以在答案中添加哪些附加内容?

提前致谢.

编辑:

在我消化您的回复时 - 我还要指出这个问题也适用于Liferay和Apache OFBiz等框架.

java security web-applications

7
推荐指数
2
解决办法
607
查看次数

如何在Mac OS X上枚举卷?

我不是非常精通Mac OS X编程,但我正在开发一个需要有关存储设备信息的Qt应用程序.基本上是硬盘驱动器和USB拇指驱动器的列表.最终结果应该像一个向量,其中包含每个设备的以下信息:

string:标签
字符串:挂载点
字符串:设备描述(又名友好名称)
uint64:大小
bool:可移动吗?

我一直在Windows上和以下帖子中获取有关磁盘驱动器结果的信息在windows7 - 32位系统上提供了很大的帮助.但是,虽然我非常精通C/C++,但我在Mac OS X编程,Cocoa和/或Objective-C方面并不是很好,所以任何帮助都会非常感激.

c++ macos qt objective-c

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

由于缓冲区"ido.last",emacs不会关闭

当我尝试关闭emacs时,我收到了消息

"缓冲ido.last修改;杀死无论如何?"

无论我回答什么,emacs都会保持开放状态.但我无法打开此缓冲区并且ido.last文件不存在.如何关闭我的emacs?

emacs

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

在Java 5中引入泛型的原因

有人能解释一下Java中引入泛型的原因吗?

据我所知,它们的介绍使您不会意外地将错误类型的对象添加到集合中.

我有点像收集的泛型,但不知道为什么它们也被添加到其他类.我见过一些让你的头部疼痛,眼睛流血的通用课程.

那么泛型的所有原因是什么(主要是非收集)?

TIA!

java generics

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

LINQ to SQL连接两个表,根据子表中的两个不同列选择父表两次

我想在C#和VB.NET中得到建议

我有两个表Employees和CafeLogs.一些员工可以是收银员,也可以是咖啡店的顾客.

表结构:

  • 员工:EmployeeId(PK),FirstName,LastName
  • CafeLogs:LogId(PK),CashierId,EmployeeId,Value,=> CashierId和EmployeeId是Empoyee表的EmployeeId列中的数据

表关系:

  • 员工1:N CafeLogs(CashierId(FK))

员工表数据:

EmployeeId,FirstName,LastName

  • 1,史蒂夫,马克斯
  • 2,路易斯,约翰
  • 3,酷酷,乔
  • 4,史蒂文,杰拉尔德
  • 5,布朗,雷克萨斯

    CafeLogs表数据:

    LogId,CashierId,EmployeeId,Value

    • 1,2,3,9
    • 2,3,4,12
    • 3,2,5,8
    • 4,3,1,4
    • 5,3,1,2
    • 6,2,5,9
    • 7,2,4,1

通缉结果:我想从一个查询中显示出这样的收银员名称和员工姓名:

  • LogId,员工,收费,价值
  • 1,Scoot Joe,Louis John,9
  • 2,Steven Gerald,Scoot Joe,12岁
  • 3,布朗雷克萨斯,路易斯约翰,8
  • 4,Steve Marks,Scoot Joe,4
  • 5,Steve Marks,Scoot Joe,2
  • 6,布朗雷克萨斯,路易斯约翰,9
  • 7,Steven Gerald,Lours John,1

    现在我知道如何只选择LogId,员工的姓名和Value,而不是Cashier名称.

     Dim query = From log In db.CafeLogs _
                Join emp In db.Employees On emp.EmployeeId Equals log.EmployeeId _
                Select log.LogId, emp.FirsName, emp.LastName, log.Value
    
    Run Code Online (Sandbox Code Playgroud)

c# linq vb.net linq-to-sql

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

从会话中删除项目

我在购物车项目中删除会话数组中的项目时遇到问题.以下代码应采用所选项目并将其从会话中删除.然而,最终结果与之前的会话相同,没有删除任何内容.我通过谷歌搜索看到了类似的问题,但还没有找到可行的解决方案.这是精简代码:

<?php
session_start();
$removeditem = $_GET['item']; // this identifies the item to be removed
unset($_SESSION['stuff'][$removeditem]); // "stuff" is the existing array in the session
?>
Run Code Online (Sandbox Code Playgroud)

以下是print_r为以下内容提供的内容(使用"7"作为已删除项目的示例):

$removeditem: 
7

$_SESSION['stuff'] (before and after removal)
Array
(
    [0] => 7
    [1] => 24
    [2] => 36
)
Run Code Online (Sandbox Code Playgroud)

我错过了一些明显的东西吗

php variables session cart unset

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

为什么纯IEnumerable的内容对于WPF DataGrid是不可见的?

假设我有一个带有itemsource绑定到属性Collection的datagrid,例如IEnumerable.当然我为它写了适当的getter和setter.

现在,当我分配给这个属性(Collection)时只是IEnumerable(作为某种方法的结果),如:

Collection = FooMethod(); // FooMethod returns IEnumerable<MyClass>
Run Code Online (Sandbox Code Playgroud)

datagrid将显示空行.行的计数将与Collection的计数匹配.

但当我强制转换时,像这样:

Collection = FooMethodp().ToArray(); // forced fetching data
Run Code Online (Sandbox Code Playgroud)

datagrid现在将显示包含内容的所有行.

那么什么阻止数据网格在纯IEnumerable的情况下显示数据呢?它必须迭代一个集合,所以无论如何都要进行提取.

编辑

仅供记录.MyClass是这样的:

public class ErrorsIndicators
{
    public double Min { get; set; }
    public double Max { get; set; }
    public double Avg { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和FooMethod返回(返回yield)几个项目.所以,这里没什么特别的.

c# data-binding wpf ienumerable datagrid

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

是否针对数组或List <T>优化了LINQ .Last,.Skip等方法?

我想知道LINQ方法是否喜欢.Last.Skip针对数组进行优化List<T>等等.例如,对于一个数组,我可以做到_array[_array.Length - 1]最后一个元素.是否_array.Last()实际上是通过所有的元素一一列举,然后返回最后还是有其实内置了一些优化?

如果没有,可能不得不放弃表现.

linq arrays optimization

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

如何将对象添加到另一个对象集中

我有两节课.一个(Person)用于getter和setter,另一个(People)用于计算数据.我的情况是,我从数据库中获取数据ResultSet,然后创建一个人对象来存储行数据.然后我创建了人物对象来存储所有人.

每个对象创建为SET.

while(rs.next())
{
    Set<People> people = new HashSet<people>();
    Person person = new Person();
    String name = rs.getString(2);
    person.setName(name);
    int id = rs.getInt(1);
    person.setId(id);
    String dept = rs.getString(4);
    person.setDept(dept);
    int age = rs.getInt(3);
    person.setAge(age);
    people.add(person);
}
return people;
Run Code Online (Sandbox Code Playgroud)

现在问题是While循环中的最后一行 people.add(person);

它说

类型Set中的方法add(People)不适用于参数(Person)

我怎样才能克服这个问题?

谢谢.

java object set

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