Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7874333
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 3, 20262026-06-03T02:47:12+00:00 2026-06-03T02:47:12+00:00

I have read that it is a bad idea to take aliasing into account

  • 0

I have read that it is a bad idea to take aliasing into account when implementing equals.
An example would be equals for File.
I was wondering why is it a bad idea? Simply because the implementation is harder to be correct?
If FileA and FileB refer to the same file but have different path names why should they be not equal?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-03T02:47:12+00:00Added an answer on June 3, 2026 at 2:47 am

    Making equals() return true for aliased filenames that point to the same actual file is a bad idea because it violates common assumptions about the behaviour of equality.

    Consider the following examples:

    • Even if they refer to the same underlying file right now, this may change in the future (e.g. due to changes on the filesystem making one path invalid). You want things that are equal now to stay equal in the future (unless of course you explicitly mutate them).
    • If you transform the files (for example by going up one directory) then the results will also not be equal. The assumption being violated here is that you expect the same operation applied to two equal things to produce equal results.

    Hence we can see that taking aliasing into account would produce some unexpected behaviour for two supposedly “equal” objects. This is likely to cause strange and subtle bugs in the future when people make incorrect assumptions.

    A secondary but also relevant concern is that taking account of aliasing may add considerable implementation complexity and performance overhead. You normally want equals() to be very efficient since it may get called often: if it is forced to make IO calls to the operating system to determine file aliasing then this is unlikely to be the case.

    In this situation I would implement a completely different function that tests for pointing to the same physical file – refersToSameFile or something similar. This allows you to use a more descriptive name for the operation and avoids messing up expectations about equality behaviour.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have read that its bad idea to use platform default character encoding for
I have read that you can do it, but would this really improve performance
I have read that CURL is way too fast than File Get Contents and
I have read here -- without understanding much -- that it's bad to use
I have read in many posts that global variables are bad, but I need
I have read that gwt-ext is slow and it seems too bulky. How does
I have read that 'Normal' ARM instructions are fixed length - 32 bits. And
I have read that LinkedHashMap has faster iteration speed than HashMap because its elements
I have read that most languages are becoming more and more like lisp, adopting
I have read that to match a word inside of a string using Regular

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.